Mybatis如何自動生成數據庫表的實體類
# 數據庫驅動jar 路徑 本地創庫的包drive.class.path=C:/Users/Administrator/.m2/repository/mysql/mysql-connector-java/5.1.30/mysql-connector-java-5.1.30.jar# 數據庫連接參數jdbc.driver=com.mysql.jdbc.Driverjdbc.url=jdbc:mysql://192.168.1.188:3306/sxhy_user?useUnicode=true&characterEncoding=utf-8jdbc.username=rootjdbc.password=rhzh# 包路徑配置model.package=com.fishing.personal.common.entityxml.mapper.package=com.fishing.personal.common.dao.mappertarget.project=src/main/java第三步配置文件
<?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'><!-- 配置Run As Maven build : Goals 參數 : mybatis-generator:generate -Dmybatis.generator.overwrite=true --><!-- 配置 tableName,使用 Run As Maven build 生成 dao model 層 --><!-- maven執行命令:mybatis-generator:generate --><generatorConfiguration> <!-- 配置文件路徑 --> <properties url='${mybatis.generator.generatorConfig.properties}'/> <!--數據庫驅動包路徑 --> <classPathEntry location='${drive.class.path}'/><!--上下文配置、核心配置屬性介紹defaultModelType: conditional:*這是默認值*,這個模型和下面的hierarchical類似,除了如果那個單獨的類將只包含一個字段,將不會生成一個單獨的類。 因此,如果一個表的主鍵只有一個字段,那么不會為該字段生成單獨的實體類,會將該字段合并到基本實體類中。 flat:該模型為每一張表只生成一個實體類。這個實體類包含表中的所有字段。**這種模型最簡單,推薦使用。** hierarchical:如果表有主鍵,那么該模型會產生一個單獨的主鍵實體類,如果表還有BLOB字段, 則會為表生成一個包含所有BLOB字段的單獨的實體類, 然后為所有其他的字段生成一個單獨的實體類。 MBG會在所有生成的實體類之間維護一個繼承關系。--> <context targetRuntime='MyBatis3' defaultModelType='flat'> <!-- 自動為表名加上前后綴,防止表名中出現空格發生異常(mysql=`) --> <property name='beginningDelimiter' value='`'/><property name='endingDelimiter' value='`'/><!--關閉注釋 --><commentGenerator><!-- 阻止生成注釋 --> <property name='suppressAllComments' value='false'/> <!-- 阻止生成注釋包含時間戳 --> <property name='suppressDate' value='true'/></commentGenerator><!-- 自定義注釋生成類,為以上節點添加type屬性 --><!-- <commentGenerator type='com.package.abel533.mybatis.generator.MyCommentGenerator'/> --><!--數據庫連接信息 --><jdbcConnection driverClass='${jdbc.driver}' connectionURL='${jdbc.url}' userId='${jdbc.username}'password='${jdbc.password}'></jdbcConnection><!--生成的model 包路徑 --><javaModelGenerator targetPackage='${model.package}' targetProject='${target.project}'><!-- 是否根據catalog和schema來生成子包 --> <property name='enableSubPackages' value='ture'/> <!-- 是否使用構造方法入參 --> <property name='trimStrings' value='true'/> <!-- 是否對字符串進行trim操作 --> <property name='trimStrings' value='false' /></javaModelGenerator><!--生成xml mapper文件 路徑 --><sqlMapGenerator targetPackage='${xml.mapper.package}' targetProject='${target.project}'><!-- 是否根據catalog和schema來生成子包 --> <property name='enableSubPackages' value='ture'/></sqlMapGenerator><!-- 生成的Dao接口 的包路徑 --><!--type屬性介紹:(僅用于mybatis3)ANNOTATEDMAPPER:基于注解的Mapper接口,不會有對應的XML映射文件MIXEDMAPPER:XML和注解的混合形式,(上面這種情況中的)SqlProvider注解方法會被XML替代。XMLMAPPER:所有的方法都在XML中,接口調用依賴XML文件。--> <!-- <javaClientGenerator type='XMLMAPPER' targetPackage='${dao.package}' targetProject='${target.project}'>是否根據catalog和schema來生成子包 <property name='enableSubPackages' value='ture'/></javaClientGenerator> --><!-- 對應數據庫表名 --><table tableName='user_client' modelType='flat'> <!-- 配置所有到方法的根接口 --> <property name='rootInterface' value='com.rhzh.client.core.generic.GenericDao<Object, Integer>' /> <!-- 配置主鍵 --> <generatedKey column='id' sqlStatement='Mysql' identity='true'/></table><!-- 手動配置table --><!--<table tableName='數據庫表名' domainObjectName='自動生成的實體類名' ....更多見參考文檔>配置表的主鍵以及所使用的sql語法<generatedKey column='id' sqlStatement='Mysql'/>....更多見參考文檔</table>--> </context></generatorConfiguration>第四步配置MAVEN
idea通過數據庫直接生成mybatis的xml和實體文件,很簡單,一共分三步
1.配置generatorConfig.xml
2.配置pom
3.配置命令 mybatis-generator:generate -e
1.配置generatorConfig.xml以下會自動生成entity,mapper,和xml文件
mapper上是沒有@Mapper注解的呦
<!--<?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> <!--classPathEntry:數據庫的JDBC驅動,換成你自己的驅動位置 可選 --> <classPathEntry location='F:aaaRepositoryjavarepositorymysqlmysql-connector-java8.0.17mysql-connector-java-8.0.17.jar'/> <context id='mysql'> <commentGenerator><property name='suppressDate' value='true' /><property name='suppressAllComments' value='true' /> </commentGenerator> <jdbcConnection connectionURL='jdbc:mysql://localhost:3306/aaa?serverTimezone=GMT%2B8' driverClass='com.mysql.cj.jdbc.Driver' password='root' userId='root' /> <javaTypeResolver><property name='forceBigDecimals' value='false' /> </javaTypeResolver> <javaModelGenerator targetPackage='com.aaa.bbb.entity' targetProject='src/main/java' ><property name='constructorBased' value='false'/> </javaModelGenerator> <sqlMapGenerator targetPackage='mapper' targetProject='src/main/resources'/> <javaClientGenerator targetPackage='com.aaa.bbb.mapper' targetProject='src/main/java' type='XMLMAPPER' > </javaClientGenerator> <table tableName='ccc' enableCountByExample='false' enableUpdateByExample='false' enableDeleteByExample='false' enableSelectByExample='false'> </table> </context></generatorConfiguration>
“context” 的內容必須匹配按照下面的順序配置 ?號的可以沒有
(connectionFactory|jdbcConnection),javaTypeResolver?,javaModelGenerator,sqlMapGenerator?,javaClientGenerator?,table+2.配置pom
<build><plugins><plugin><groupId>org.mybatis.generator</groupId><artifactId>mybatis-generator-maven-plugin</artifactId><configuration><verbose>true</verbose><overwrite>true</overwrite></configuration></plugin><plugin><groupId>org.springframework.boot</groupId><artifactId>spring-boot-maven-plugin</artifactId></plugin></plugins></build>3.命令 mybatis-generator:generate -e
運行上邊的命令就行了,實體是駝峰形式的,也可以修改配置和數據庫一樣
public class Ccc{ private Integer id; private String identifyCode; public Integer getId() {return id; } public void setId(Integer id) {this.id = id; } public String getIdentifyCode() {return identifyCode; } public void setIdentifyCode(String identifyCode) {this.identifyCode = identifyCode; }}
以上為個人經驗,希望能給大家一個參考,也希望大家多多支持好吧啦網。
相關文章: