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
第五步配置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 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; }}
以上为个人经验,希望能给大家一个参考,也希望大家多多支持好吧啦网。
相关文章: