在springboot中使用mybatis generate自动生成实体类和mapper
1、在全局的pom中引入mybatis generate的依賴
<!--自動(dòng)生成實(shí)體--><dependency><groupId>org.mybatis.generator</groupId><artifactId>mybatis-generator-core</artifactId><version>1.3.5</version></dependency>2、在全局的pom中加入插件
<plugin><groupId>org.mybatis.generator</groupId><artifactId>mybatis-generator-maven-plugin</artifactId><version>1.3.5</version><configuration><!--generatorConfig.xml位置--><configurationFile>src/main/resources/mybatis-generator/generatorConfig.xml</configurationFile><verbose>true</verbose><overwrite>true</overwrite></configuration><executions><execution><id>Generate MyBatis Artifacts</id><goals><goal>generate</goal></goals><phase>generate-sources</phase></execution></executions><!--此處必須添加mysql驅(qū)動(dòng)包--><dependencies><dependency><groupId>mysql</groupId><artifactId>mysql-connector-java</artifactId><scope>runtime</scope><version>5.1.46</version></dependency></dependencies></plugin>3、創(chuàng)建配置文件
以下是我自己的創(chuàng)建配置文件的位置。
可以看到我這個(gè)項(xiàng)目里面有很多個(gè)模塊,但是我為什么放在XApplication這個(gè)模塊中呢,因?yàn)檫@個(gè)模塊是我整個(gè)項(xiàng)目的唯一啟動(dòng)入口,所以才會(huì)在這里進(jìn)行配置。
generatorConfig.xml
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE generatorConfigurationPUBLIC "-//mybatis.org//DTD MyBatis Generator Configuration 1.0//EN""http://mybatis.org/dtd/mybatis-generator-config_1_0.dtd"> <!-- 配置生成器 --> <generatorConfiguration><!--執(zhí)行g(shù)enerator插件生成文件的命令: call mvn mybatis-generator:generate -e --><!-- 引入配置文件 --><properties resource="mybatis-generator/mybatisGeneratorinit.properties"/><!--classPathEntry:數(shù)據(jù)庫(kù)的JDBC驅(qū)動(dòng),換成你自己的驅(qū)動(dòng)位置 可選 --><!--<classPathEntry location="E:\mybatis\mysql-connector-java-5.1.24-bin.jar" /> --><!-- 一個(gè)數(shù)據(jù)庫(kù)一個(gè)context --><!--defaultModelType="flat" 大數(shù)據(jù)字段,不分表 --><context id="MysqlTables" targetRuntime="MyBatis3Simple" defaultModelType="flat"><!-- 自動(dòng)識(shí)別數(shù)據(jù)庫(kù)關(guān)鍵字,默認(rèn)false,如果設(shè)置為true,根據(jù)SqlReservedWords中定義的關(guān)鍵字列表;一般保留默認(rèn)值,遇到數(shù)據(jù)庫(kù)關(guān)鍵字(Java關(guān)鍵字),使用columnOverride覆蓋 --><property name="autoDelimitKeywords" value="true" /><!-- 生成的Java文件的編碼 --><property name="javaFileEncoding" value="utf-8" /><!-- beginningDelimiter和endingDelimiter:指明數(shù)據(jù)庫(kù)的用于標(biāo)記數(shù)據(jù)庫(kù)對(duì)象名的符號(hào),比如ORACLE就是雙引號(hào),MYSQL默認(rèn)是`反引號(hào); --><property name="beginningDelimiter" value="`" /><property name="endingDelimiter" value="`" /><!-- 格式化java代碼 --><property name="javaFormatter" value="org.mybatis.generator.api.dom.DefaultJavaFormatter"/><!-- 格式化XML代碼 --><property name="xmlFormatter" value="org.mybatis.generator.api.dom.DefaultXmlFormatter"/><plugin type="org.mybatis.generator.plugins.SerializablePlugin" /><plugin type="org.mybatis.generator.plugins.ToStringPlugin" /><!-- 注釋 --><commentGenerator ><property name="suppressAllComments" value="false"/><!-- 是否取消注釋 --><property name="suppressDate" value="true" /> <!-- 是否生成注釋代時(shí)間戳--></commentGenerator><!-- jdbc連接 --><jdbcConnection driverClass="${jdbc_driver}" connectionURL="${jdbc_url}" userId="${jdbc_user}" password="${jdbc_password}" /><!-- 類型轉(zhuǎn)換 --><javaTypeResolver><!-- 是否使用bigDecimal, false可自動(dòng)轉(zhuǎn)化以下類型(Long, Integer, Short, etc.) --><property name="forceBigDecimals" value="false"/></javaTypeResolver><!-- 生成實(shí)體類地址 --><javaModelGenerator targetPackage="biz.xcj.entity.sys.permit" targetProject="${models}" ><property name="enableSubPackages" value="false"/><property name="trimStrings" value="true"/></javaModelGenerator><!-- 生成mapxml文件 --><sqlMapGenerator targetPackage="biz.xcj.mapper.sys.permit" targetProject="${resources}" ><property name="enableSubPackages" value="false" /></sqlMapGenerator><!-- 生成mapxml對(duì)應(yīng)client,也就是接口dao --><javaClientGenerator targetPackage="biz.xcj.mapper.sys.permit" targetProject="${dao}" type="XMLMAPPER" ><property name="enableSubPackages" value="true" /></javaClientGenerator><!-- table可以有多個(gè),每個(gè)數(shù)據(jù)庫(kù)中的表都可以寫一個(gè)table,tableName表示要匹配的數(shù)據(jù)庫(kù)表,也可以在tableName屬性中通過(guò)使用%通配符來(lái)匹配所有數(shù)據(jù)庫(kù)表,只有匹配的表才會(huì)自動(dòng)生成文件 --><!--如果想生成一個(gè)表則tableName="table_name"--><table tableName="text"enableCountByExample="true"enableUpdateByExample="true"enableDeleteByExample="true"enableSelectByExample="true"selectByExampleQueryId="true"><property name="useActualColumnNames" value="false" /><!-- 數(shù)據(jù)庫(kù)表主鍵 --><generatedKey column="uuid" sqlStatement="Mysql" identity="true" /></table></context> </generatorConfiguration>mybatisGeneratorinit.properties文件
jdbc_driver=com.mysql.jdbc.Driver jdbc_url=jdbc:mysql://localhost:3306/hyqd?useUnicode=true&characterEncoding=UTF-8&serverTimezone=Asia/Shanghai jdbc_user=root jdbc_password=123456 models=C:\\jinshu\\develop\\projects\\HYQD\\web-user-manager-pojo\\src\\main\\java resources=C:\\jinshu\\develop\\projects\\HYQD\\web-user-manager-pojo\\src\\main\\java dao=C:\\jinshu\\develop\\projects\\HYQD\\web-user-manager-pojo\\src\\main\\java4、配置文件需要自己配置的內(nèi)容講解
1:數(shù)據(jù)庫(kù)連接配置
在mybatisGeneratorinit.properties文件中的所有jdbc配置中,這個(gè)大家應(yīng)該都很熟系了,連接上自己的數(shù)據(jù)庫(kù)即可。
2:實(shí)體類生成地址配置
在generatorConfig.xml文件中的這個(gè)地方。
<!-- 生成實(shí)體類地址 --><javaModelGenerator targetPackage="biz.xcj.entity.sys.permit" targetProject="${models}" ><property name="enableSubPackages" value="false"/><property name="trimStrings" value="true"/></javaModelGenerator>targetProject="${models}" 引用的就是mybatisGeneratorinit.properties文件中的models的配置。
因?yàn)槲易约菏窍胫苯由稍陧?xiàng)目中,所以我的models配置的路徑就是我自己項(xiàng)目的絕對(duì)路徑。
targetPackage里面的內(nèi)容就是生成實(shí)體類的具體位置。因?yàn)槲业?strong>models已經(jīng)配置到j(luò)ava的這個(gè)位置了,所以我的targetPackage只需要配置java后面的路徑就可以了,如圖所示,我java后面的路徑為biz.xcj.entity.sys.permit。
總結(jié):配置生成地址,只需要修改targetPackage和models兩個(gè)參數(shù)即可。
3:mapper層生成地址配置
在generatorConfig.xml文件中的這個(gè)地方。
<!-- 生成mapxml文件 --><sqlMapGenerator targetPackage="biz.xcj.mapper.sys.permit" targetProject="${resources}" ><property name="enableSubPackages" value="false" /></sqlMapGenerator><!-- 生成mapxml對(duì)應(yīng)client,也就是接口dao --><javaClientGenerator targetPackage="biz.xcj.mapper.sys.permit" targetProject="${dao}" type="XMLMAPPER" ><property name="enableSubPackages" value="true" /></javaClientGenerator>這里面配置的內(nèi)容其實(shí)適合實(shí)體類的配置一模一樣的,都是同一個(gè)原理。
只需要修改targetPackage的參數(shù)和mybatisGeneratorinit.properties中對(duì)應(yīng)的配置就可以了。
4:配置需要生成的數(shù)據(jù)庫(kù)表
在generatorConfig.xml文件中的這個(gè)地方。tableName就表示需要生成的表名稱。
<!--如果想生成一個(gè)表則tableName="table_name"--><table tableName="text"enableCountByExample="true"enableUpdateByExample="true"enableDeleteByExample="true"enableSelectByExample="true"selectByExampleQueryId="true"><property name="useActualColumnNames" value="false" /><!-- 數(shù)據(jù)庫(kù)表主鍵 --><generatedKey column="uuid" sqlStatement="Mysql" identity="true" /></table>4、生成代碼
配置好后,打開后面的maven窗口。
因?yàn)槲沂窃赬Application模塊中配置的,所以打開的位置路徑是XApplication-Plugins-mybatis-generator,雙擊第一個(gè)mybatis-generator:generate
最后提示SUCCESS則表示自動(dòng)生成成功。
總結(jié)
以上是生活随笔為你收集整理的在springboot中使用mybatis generate自动生成实体类和mapper的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: SpringBoot简单集成Redis,
- 下一篇: java实现十进制与二进制之间的转换