Mybatis如何自動生成數據庫表的實體類
第一步引入jar
第二步,配置文本文件
# 數據庫驅動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.Driver jdbc.url=jdbc:mysql://192.168.1.188:3306/sxhy_user?useUnicode=true&characterEncoding=utf-8 jdbc.username=root jdbc.password=rhzh # 包路徑配置 model.package=com.fishing.personal.common.entity xml.mapper.package=com.fishing.personal.common.dao.mapper target.project=src/main/java
第三步配置文件
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE generatorConfiguration PUBLIC "-//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 id="DB2Tables" 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
第五步配置MAVEN的插件
第六步,啟動
Mybatis自動生成xml的配置
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 generatorConfiguration PUBLIC "-//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:\aaaRepository\java\repository\mysql\mysql-connector-java\8.0.17\mysql-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; } }
以上為個人經驗,希望能給大傢一個參考,也希望大傢多多支持WalkonNet。
推薦閱讀:
- Mybatis使用命令生成逆向工程的方法
- Mybatis Generator具體使用小技巧
- mybatis自動生成@Table、@Column、@Id註解的方法
- springboot集成mybatis官方生成器
- springboot集成mybatis-maven插件自動生成pojo的詳細教程