Mybatis如何自动生成数据库表的实体类
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; } }
以上为个人经验,希望能给大家一个参考,也希望大家多多支持趣讯吧。
推荐阅读
-
Mybatis中怎么利用useGeneratedKeys获取自增主键
Mybatis中怎么利用useGeneratedKeys获取自增主键,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以...
-
Mybatis中怎么实现SQL防注入
这篇文章给大家介绍Mybatis中怎么实现SQL防注入,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。什么是S...
-
mybatis中怎么利用注解对对象进行批量更改
这期内容当中小编将会给大家带来有关mybatis中怎么利用注解对对象进行批量更改,文章内容丰富且以专业的角度为大家分析和叙述,阅读...
-
mybatis(如何判断list集合是否包含指定数据)
mybatis,如何判断list集合是否包含指定数据需求1、在mybatis脚本中想要判断list中是否含有某个字符串。2、动...
-
Mybatis中多个对象包含同一个对象的处理操作
-
mybatis配置对象包含对象以及List的方式
mybatis配置对象包含对象以及List的方式mybatis配置对象包含对象及List这里隐藏getset方法publ...
-
json如何解析混合数组对象到实体类的list集合里去
json如何解析混合数组对象到实体类的list集合里去一、前言这次项目中遇到了一个这样的需求,把下面数据解析到我下面的对象里去。...
-
Mybatis中resultMap如何使用
-
如何使用mybatis查询语句
本篇文章给大家分享的是有关如何使用mybatis查询语句,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收...
-
解决mybatis中的mapper命名问题
mybatismapper命名问题mapper文件中id命名最好首字母小写,避免让mybatis认为是一个类<...