Я недавно изучал Java и обнаружил, что Mybatis появляется довольно часто при наборе Java, которая может быть основанием базы данных ORM, которая чаще используется в разработке Java. Так что я собирался изучить интеграцию весенних ботинок и mybatis.
1. Добавьте следующую конфигурацию в файл pom.xml
<dependencies> <dehyedency> <groupid> org.springframework.boot </GroupId> <straCactId> Spring-Boot-Starter-web </artifactid> </deploydent> <depertion> <groupid> org.springframework.boot </GroupD> <ratifactid> spring-boot-starter-test </artifactid> test> test/scope> test/artifactid> </artifactid> atpertine> atprame> </artifope> artifactid> </GroupD> artifactid> spring-boot-start <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-jdbc</artifactId> </dependency> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <scope>runtime</scope> </dependency> <dependency> <groupId> com.alibaba </GroupId> <StrifactId> Druid </artifactid> <sersive> 1.0.29 </version> </vehyed> <Dependency> <groupd> org.springframework.boot </GroupId> <Artifactid> Spring-boot-starter-data-jpa </artifactid> </redysis hit hitis hit hitis this hit ethis hitis Вы не можете использовать его, не добавляя его-> <Dependency> <groupId> org.mybatis.spring.boot </GroupId> <ratifactid> mybatis-spring-boot-starter </artifactid> <seriate> 1.3.2 </version> </зависимость> <!-Это зависимость, которая автоматически генерирует Mappers и т. Д. <groupId> org.mybatis.generator </GroupId> <artifactId> mybatis-Generator </artifactid> <serse> 1.3.5 </version> <Тип> pom </type> </depertion> <! https://mvnrepository.com/artifact/org.mybatis.generator/mybatis-generator-core-> <dependency> <groupid> org.mybatis.generator </GroupId> <ratifactid> mybatis-Generator </artifactid> <persion> <serse> <bread> </resemencies> <//зависимость> <//зависимости> <//зависимости> <//зависимость> <//зависимости> <//зависимости> <//зависимости> <//зависимость> <//зависимости> </artifactid> <perse> <blicin> <groupid> org.springframework.boot </GroupId> <ArtifactId> Spring-boot-maven-plugin </artifactid> </placin> <blicin> <groupid> org.mybatis.generator </GroupId> <artifactid> mybatis-Generator-maven-plugin </artifactid> <serifactid> mybatis-generator-maven-plugin </artifactid> <serifactid> mybatis-generator-maven-plugin </artifactid> </artifactid>. <!-Адрес для файла конфигурации-> <!-<configurationfile> src/main/resources/mybatis-Generator/GeneratorConfig.xml </configurationFile>-> <verbose> true </verbose> <Overwrite> true </overwrite> </configuration> </plugin> </plugsins> </builte>
2. Настройка базы данных и сканирования Mybatis в Application.properties файл конфигурации
spring.datasource.driver-class-name = com.mysql.jdbc.driverspring.datasource.url = jdbc: mysql: // localhost: 3306/yddy? useunicode = true & charcyencodin g = utf-8 & servertimezone = utcspring.datasource.username = oorpring.datasource.password = 123456mybatis.config-locations = classpath: mybatis-config.xml## MAPPER FILE MYBATIS.MAPPER-LOCATION = CLASTPATH: MAPPER/ *. XML #WRITE * Прямо здесь, что полезно для пользовательского SQL и написания xxxext.xml позже. Он автоматически сканирует эти файлы. Нет необходимости изменять конфигурацию mybatis.type-aliases-package = com.dameiweb.learn.modellogging.level.com.dameiweb.learn.dao = debug#mybatis.config = mybatis configuration file name#mybatis.mapperlocations = mapper xml файл#mybatis.ty.ty.ty.ty.ty.ty.ty.ty.ty.ty. path#mybatis.typehandlerspackage = type Handlers Package Package#mybatis.check-config-location = Проверьте mybatis, существует ли конфигурация, обычно называется Mybatis-config.xml#mybatis.executortype = режим исполнения. По умолчанию прост
3. Конфигурация Mybatis и автоматическая конфигурация Mapper
Создайте новый GeneratorConfig.xml и Mybatis-config.xml в каталоге ресурсов. Содержание следующим образом:
Контент GeneratorConfig.xml
<? xml version = "1.0" Encoding = "UTF-8"?> <! Doctype GeneratorConfiguration public "-// mybatis.org//dtd Mybatis Generator Configuration 1.0 // en" <classpathentry location = "c:/users/nick/.m2/repository/mysql/mysql-connector-java/5.1.46/mysql-connect-java-5.1.46.jar"/> <context id = "db2tables" targetruntime = "mybatis3"> <Комментатор> <petote name = "values"> "values" = ">" values "=" values "="> "values" = ">" db2tables ">" values "="> "db2tables"> ". <name Property = "supressallComments" value = "true"/> </commentGenerator> <!-Пароль адреса ссылки на базу данных-> <jdbcconnection driverclass = "com.mysql.jdbc.driver" connectionURL="jdbc:mysql://localhost:3306/yddy?useUnicode=true&characterEncoding=UTF-8&serverTimezone=UTC" userId="root" password="123456"> </jdbcConnection> <javaTypeResolver> <property name="forceBigDecimals" value="false"/> </javatyperesolver> <!-генерировать место хранения класса моделей-> <javamodelgenerator targetpackage = "com.dameiweb.learn.model" targetproject = "src/main/java"> <name = "enablesubpackages" value = "true"/>-Spaces до и после значения. name = "trimstrings" value = "false"/> </javamodelgenerator> <!-генерировать местоположение хранилища файлов карты-> <sqlmapGenerator generate easy-to-use code type="ANNOTATEDMAPPER", generate Java Model and annotation-based Mapper object type="MIXEDMAPPER", generate annotation-based Java Model and corresponding Mapper object type="XMLMAPPER", generate SQLMap XML files and independent Mapper interface--> <javaClientGenerator type="XMLMAPPER" TargetPackage = "com.dameiweb.learn.dao" targetProject = "src/main/java"> <property name = "enablesBpackages" value = "true"/> </javaclientgenerator> </context> </generatorConfiguration>
Содержание mybatis-config.xml:
<? xml version = "1.0" Encoding = "UTF-8"?> <! Конфигурация doctype public "-// mybatis.org//dtd config 3.0 // en" "http://mybatis.org/dtd/mybatis-3-config.dtd"> <cistincuration> <trevents> <treats namenon namenon namenols "> <TractSenOnts"> <TractSenOnts "> <TrailSentts"> <TractSOnts "> <TractSOnts"> <TractSOnts "> <TractSentts"> <TractSOnts "> <Настройка name = "cacheenabled" value = "true"/> <setting name = "lazyloadingenabled" value = "true"/> <setting name = "AggrevessIvelAzyling" value = "true"/> <настройка name = "multiplerSultsEstesEnabled" value = "true"/> <настройка name = "usecolumnlabel" value = "true"/> value = "useGenke valueS"/vally vatue "/vally vatue"/> value "/vallude"/vatue "/vatue"/vatue "/vatue". name = "AutompapingBehavior" value = "partial"/> <настройка name = "defaultexeCutortype" value = "simple"/> <setting name = "mapunderscoretocamelcas ALIAS = "Integer" type = "java.lang.integer" /> <typealias alias = "long" type = "java.lang.long" /> <typealias alias = "hashmap" type = "java.util.hashmap" /> <typealias alias = "linkedhashmap" type = "java.ut.til.Util.Util.Util.Util.Util.Ut.Util.UTIL.UTIL.UTIL.UTIL.UTIL.UTIL. Alias = "arraylist" type = "java.util.arraylist" /> <typealias alias = "linkedlist" type = "java.util.linkedlist" /> < /typealiases> < /configuration>
Таким образом, мы настроили Spring Boot, Mybatis и Mybatis для автоматического генерации Mappers и объектов. Таким образом, когда мы хотим генерировать объект и карту определенной таблицы, нам нужно добавить только следующий контент после тега JavaclientGenerator в GeneratorConfig.xml.
Здесь у нас есть таблица yd_movies в качестве примера (не используйте числа множественного числа в основном имени таблицы базы данных. Это имя таблицы должно быть моим мозгом раньше, поэтому я сделал имя множественного числа)
<!--Generate corresponding table and class name--> <table tableName="yd_movies" domainObjectName="Movie" enableCountByExample="false" enableUpdateByExample="false" enableDeleteByExample="false" enableSelectByExample="false" selectByExampleQueryId="false"> <columnOverride column="cover_photos" javatype = "java.lang.string" jdbctype = "varchar" /> <columnoverride column = "cover_photos_loc" javatype = "java.lang.string" jdbctype = "varchar" /> <coluneoverride column = "pubdates" javatype = "java.lang. jdbctype = "varchar" /> <columnoverride column = "photographs_origin" javatype = "java.lang.string" jdbctype = "varchar" /> <coluboverride colund = "photographs_origin_loc" javatype = "java.lang.stride" jdbctype = "javatype =" java.lang.stride "jdbctype =" javatype = "java.lang.lang.stride". column = "languages" javatype = "java.lang.string" jdbctype = "varchar" /> <colunoverride column = "Awards" javatype = "java.lang.string" jdbctype = "varchar" /> <coluneoverride column = "summary" javatype = "java.lang. jdbctype = "varchar" /> < /table> <!-ColumnoverRide использует этот тег, чтобы предотвратить генерирование файлов xxxxxwithblobs, когда тип поля базы данных является текстом. ->
Затем нажмите Maven Projects в правую сторону идеи, и вы можете увидеть Mybatis Generate: Generate под Mybatis Generate и дважды щелкните Mybatis Generate: Generate.
** Примечание генератора, это также можно сказать, что это ошибка
Это когда он генерируется, и во втором поколении DAO и объект будут непосредственно перезаписаны, в то время как Mapper.xml будет напрямую добавлен, что приведет к ошибке в прогоне, и его трудно найти. **
4. Mybatis Custom SQL
Когда нам нужно настроить SQL, мы также не можем поместить их в файл Mapper. В противном случае, когда поля таблицы баз данных обновляются и должны быть восстановлены, будут ли наши индивидуальные SQL перезаписаны? Таким образом, нам нужно создать новый файл moviemapperext.xml в каталоге moviemapper.xml и поместить здесь пользовательский SQL. Пример заключается в следующем:
Moviemapperext.xml Содержимое файла
<? xml version = "1.0" Encoding = "UTF-8"?> <! Doctype Mapper public "-// mybatis.org//dtd mapper 3.0 // en" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> <mapper.org/dtd/mybatis-3-mapper.dtd " namespace = "com.dmeiweb.learn.dao.moviemapper"> <select id = "selectByCondition" resultMap = "baseresultmap" parameterType = "com.dmeiweb.learn.dto.movierequest"> select yd_movies. yd_movies.id = yd_r_movie_countries.movie_id, левое соединение yd_countries coun on yd_r_movie_countries.country_id = cou.id Left join yd_r_movie_category on yd_movies.id = yd_r_movie_category.movie obtagory. yd_r_movie_category.category_id = cat.id Last Join gin yd_r_movie_actor на yd_movies.id = yd_r_movie_actor.movie_id ! = null "> и yd_movies.title like"%" #{movierequest.title}"%"</if> <if test =" movierequest.country! = null "> и cou.id = #{movieRequest.country} </if> <if test =" movierequest.categorory! #{ovieerequest.category} </if> <if test = "movieRequest.year! = null"> и year = #{movieRequest.year} </if> <if test = "movieRequest.rate! = null"> и rate> = #{movierequest.rate} </if> <if vestere evale null. <( #{ovieerequest.rate} +1) </if> <if test = "movierequest.subtype! = null"> и yd_movies.subtype = #{movieerequest.subtype} </if> group by yd_movies.id order by updated_at desc, год </select> </select> </select> </select> </select> </select> </select> </select> </select> </select> </select> </select> </select> </select> </select> </select> </select> </if> </if> mapppСуммировать
Выше приведено в Spring Boot, введенный вам редактором. Он интегрирует Mybatis и автоматически генерирует карточки и объекты. Я надеюсь, что это будет полезно для всех. Если у вас есть какие -либо вопросы, пожалуйста, оставьте мне сообщение, и редактор ответит всем вовремя. Большое спасибо за вашу поддержку сайту wulin.com!