Mybatis如何自動(dòng)生成數(shù)據(jù)庫(kù)表的實(shí)體類(lèi)
# 數(shù)據(jù)庫(kù)驅(qū)動(dòng)jar 路徑 本地創(chuàng)庫(kù)的包drive.class.path=C:/Users/Administrator/.m2/repository/mysql/mysql-connector-java/5.1.30/mysql-connector-java-5.1.30.jar# 數(shù)據(jù)庫(kù)連接參數(shù)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 參數(shù) : mybatis-generator:generate -Dmybatis.generator.overwrite=true --><!-- 配置 tableName,使用 Run As Maven build 生成 dao model 層 --><!-- maven執(zhí)行命令:mybatis-generator:generate --><generatorConfiguration> <!-- 配置文件路徑 --> <properties url='${mybatis.generator.generatorConfig.properties}'/> <!--數(shù)據(jù)庫(kù)驅(qū)動(dòng)包路徑 --> <classPathEntry location='${drive.class.path}'/><!--上下文配置、核心配置屬性介紹defaultModelType: conditional:*這是默認(rèn)值*,這個(gè)模型和下面的hierarchical類(lèi)似,除了如果那個(gè)單獨(dú)的類(lèi)將只包含一個(gè)字段,將不會(huì)生成一個(gè)單獨(dú)的類(lèi)。 因此,如果一個(gè)表的主鍵只有一個(gè)字段,那么不會(huì)為該字段生成單獨(dú)的實(shí)體類(lèi),會(huì)將該字段合并到基本實(shí)體類(lèi)中。 flat:該模型為每一張表只生成一個(gè)實(shí)體類(lèi)。這個(gè)實(shí)體類(lèi)包含表中的所有字段。**這種模型最簡(jiǎn)單,推薦使用。** hierarchical:如果表有主鍵,那么該模型會(huì)產(chǎn)生一個(gè)單獨(dú)的主鍵實(shí)體類(lèi),如果表還有BLOB字段, 則會(huì)為表生成一個(gè)包含所有BLOB字段的單獨(dú)的實(shí)體類(lèi), 然后為所有其他的字段生成一個(gè)單獨(dú)的實(shí)體類(lèi)。 MBG會(huì)在所有生成的實(shí)體類(lèi)之間維護(hù)一個(gè)繼承關(guān)系。--> <context targetRuntime='MyBatis3' defaultModelType='flat'> <!-- 自動(dòng)為表名加上前后綴,防止表名中出現(xiàn)空格發(fā)生異常(mysql=`) --> <property name='beginningDelimiter' value='`'/><property name='endingDelimiter' value='`'/><!--關(guān)閉注釋 --><commentGenerator><!-- 阻止生成注釋 --> <property name='suppressAllComments' value='false'/> <!-- 阻止生成注釋包含時(shí)間戳 --> <property name='suppressDate' value='true'/></commentGenerator><!-- 自定義注釋生成類(lèi),為以上節(jié)點(diǎn)添加type屬性 --><!-- <commentGenerator type='com.package.abel533.mybatis.generator.MyCommentGenerator'/> --><!--數(shù)據(jù)庫(kù)連接信息 --><jdbcConnection driverClass='${jdbc.driver}' connectionURL='${jdbc.url}' userId='${jdbc.username}'password='${jdbc.password}'></jdbcConnection><!--生成的model 包路徑 --><javaModelGenerator targetPackage='${model.package}' targetProject='${target.project}'><!-- 是否根據(jù)catalog和schema來(lái)生成子包 --> <property name='enableSubPackages' value='ture'/> <!-- 是否使用構(gòu)造方法入?yún)?--> <property name='trimStrings' value='true'/> <!-- 是否對(duì)字符串進(jìn)行trim操作 --> <property name='trimStrings' value='false' /></javaModelGenerator><!--生成xml mapper文件 路徑 --><sqlMapGenerator targetPackage='${xml.mapper.package}' targetProject='${target.project}'><!-- 是否根據(jù)catalog和schema來(lái)生成子包 --> <property name='enableSubPackages' value='ture'/></sqlMapGenerator><!-- 生成的Dao接口 的包路徑 --><!--type屬性介紹:(僅用于mybatis3)ANNOTATEDMAPPER:基于注解的Mapper接口,不會(huì)有對(duì)應(yīng)的XML映射文件MIXEDMAPPER:XML和注解的混合形式,(上面這種情況中的)SqlProvider注解方法會(huì)被XML替代。XMLMAPPER:所有的方法都在XML中,接口調(diào)用依賴(lài)XML文件。--> <!-- <javaClientGenerator type='XMLMAPPER' targetPackage='${dao.package}' targetProject='${target.project}'>是否根據(jù)catalog和schema來(lái)生成子包 <property name='enableSubPackages' value='ture'/></javaClientGenerator> --><!-- 對(duì)應(yīng)數(shù)據(jù)庫(kù)表名 --><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><!-- 手動(dòng)配置table --><!--<table tableName='數(shù)據(jù)庫(kù)表名' domainObjectName='自動(dòng)生成的實(shí)體類(lèi)名' ....更多見(jiàn)參考文檔>配置表的主鍵以及所使用的sql語(yǔ)法<generatedKey column='id' sqlStatement='Mysql'/>....更多見(jiàn)參考文檔</table>--> </context></generatorConfiguration>第四步配置MAVEN
idea通過(guò)數(shù)據(jù)庫(kù)直接生成mybatis的xml和實(shí)體文件,很簡(jiǎn)單,一共分三步
1.配置generatorConfig.xml
2.配置pom
3.配置命令 mybatis-generator:generate -e
1.配置generatorConfig.xml以下會(huì)自動(dòng)生成entity,mapper,和xml文件
mapper上是沒(méi)有@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:數(shù)據(jù)庫(kù)的JDBC驅(qū)動(dòng),換成你自己的驅(qū)動(dòng)位置 可選 --> <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” 的內(nèi)容必須匹配按照下面的順序配置 ?號(hào)的可以沒(méi)有
(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
運(yùn)行上邊的命令就行了,實(shí)體是駝峰形式的,也可以修改配置和數(shù)據(jù)庫(kù)一樣
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; }}
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持好吧啦網(wǎng)。
相關(guān)文章:
1. MySQL分區(qū)的優(yōu)點(diǎn)2. SQL Server2022安裝圖文教程(最新推薦)3. Delphi中的Access技巧集4. mysql數(shù)據(jù)庫(kù)中最常用的時(shí)間轉(zhuǎn)換函數(shù)的用法5. 啟動(dòng)MYSQL出錯(cuò) Manager of pid-file quit without updating file.6. 如何查看SQL SERVER的版本7. MYSQL(電話(huà)號(hào)碼,身份證)數(shù)據(jù)脫敏的實(shí)現(xiàn)8. 傳甲骨文將增加對(duì)MySQL投資與微軟競(jìng)爭(zhēng)9. Microsoft Office Access重新編號(hào)的方法10. DB2 XML 全文搜索之為文本搜索做準(zhǔn)備
