mybatis-generator在命令行及IEAD中的使用
时间:2022-07-23
本文章向大家介绍mybatis-generator在命令行及IEAD中的使用,主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
项目中的mybatis文件,在数据库表字段多的时候,手工编写还是比较费时,而且是体力活,并没有技术能力提高。所以我们大多数时候使用mybatis-generator自动生成。使用这个工具,必须使用如下3个工具:
1.工具jar包,本文使用mybatis-generator-core-1.3.2.jar
<dependency>
<groupId>org.mybatis.generator</groupId>
<artifactId>mybatis-generator-core</artifactId>
<version>1.3.2</version>
</dependency>
2.xml配置文件,本文使用mybatis-config.xml
3.数据库驱动,本文使用mysql-connector-java-8.0.16.jar
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>8.0.16</version>
</dependency>
其中最重要的是配置mybatis-config.xml,先看一个代码:
<?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>
<!--指定特定数据库的jdbc驱动jar包的位置-->
<classPathEntry location="D:/Users/jinjunzhu/.m2/repository/mysql/mysql-connector-java/8.0.16/mysql-connector-java-8.0.16.jar"/>
<context id="default" targetRuntime="MyBatis3">
<commentGenerator>
<property name="suppressDate" value="true"/>
<!-- 是否去除自动生成的注释 true:是 :false:否 -->
<property name="suppressAllComments" value="false"/>
</commentGenerator>
<!--数据库链接地址账号密码-->
<jdbcConnection driverClass="com.mysql.cj.jdbc.Driver" connectionURL="jdbc:mysql://localhost:3306/test?serverTimezone=UTC" userId="root" password="123456">
</jdbcConnection>
<javaTypeResolver>
<property name="forceBigDecimals" value="false"/>
</javaTypeResolver>
<!--生成Model类存放位置-->
<javaModelGenerator targetPackage="com.test.dao.model" targetProject="C:/Users/jinjunzhu/3D Objects/Desktop">
<property name="enableSubPackages" value="true"/>
<property name="trimStrings" value="true"/>
</javaModelGenerator>
<!--生成映射文件存放位置-->
<sqlMapGenerator targetPackage="com.test.dao.xml" targetProject="C:/Users/zhujinjun/Desktop">
<property name="enableSubPackages" value="true"/>
<property name="trimStrings" value="true"/>
</sqlMapGenerator>
<!--生成Dao类存放位置-->
<!-- 客户端代码,生成易于使用的针对Model对象和XML配置文件 的代码
type="ANNOTATEDMAPPER",生成Java Model 和基于注解的Mapper对象
type="MIXEDMAPPER",生成基于注解的Java Model 和相应的Mapper对象
type="XMLMAPPER",生成SQLMap XML文件和独立的Mapper接口
-->
<javaClientGenerator type="XMLMAPPER" targetPackage="com.test.dao.mapper" targetProject="C:/Users/zhujinjun/Desktop">
<property name="enableSubPackages" value="true"/>
<property name="trimStrings" value="true"/>
</javaClientGenerator>
<table tableName="db_user" domainObjectName="dbUser" enableDeleteByPrimaryKey="true" enableUpdateByPrimaryKey="true" enableSelectByPrimaryKey="true" enableUpdateByExample="false" enableCountByExample="false" enableDeleteByExample="false" enableSelectByExample="false"></table>
</context>
</generatorConfiguration>
从上到下依次解释一下参数:
classPathEntry:配置jdbc驱动包
commentGenerator:注解相关配置
classPathEntry:配置jdbc驱动包
commentGenerator
suppressDate:是否自动去除注释时间戳
suppressAllComments:是否去除自动生成的注释
jdbcConnection:复制配置文件中的jdbc配置就可以
forceBigDecimals:是否强制把数据库中的decimal类型和number类型转换为BigDecimal
javaModelGenerator:生成model的存放位置
sqlMapGenerator:生成xml文件的存放位置
javaClientGenerator:生成mapper接口文件的位置,type类型有如下选择:
ANNOTATEDMAPPER,生成Java Model 和基于注解的Mapper对象
MIXEDMAPPER,生成基于注解的Java Model 和相应的Mapper对象
XMLMAPPER,生成SQLMap XML文件和独立的Mapper接口
table:要自动生成的表
tableName为数据库中表的名称,domainObjectName为映射的实体类的名称-->
schema:数据库的schema;
catalog:数据库的catalog;
alias:为数据表设置的别名,如果设置了alias,那么生成的所有的SELECT SQL语句中,列名会变成:alias_actualColumnName
domainObjectName:生成的domain类的名字,如果不设置,直接使用表名作为domain类的名字;可以设置为somepck.domainName,那么会自动把domainName类再放到somepck包里面;
enableInsert(默认true):指定是否生成insert语句;
enableSelectByPrimaryKey(默认true):指定是否生成按照主键查询对象的语句(就是getById或get);
enableSelectByExample(默认true):MyBatis3Simple为false,指定是否生成动态查询语句;
enableUpdateByPrimaryKey(默认true):指定是否生成按照主键修改对象的语句(即update);
enableDeleteByPrimaryKey(默认true):指定是否生成按照主键删除对象的语句(即delete);
enableDeleteByExample(默认true):MyBatis3Simple为false,指定是否生成动态删除语句;
enableCountByExample(默认true):MyBatis3Simple为false,指定是否生成动态查询总条数语句(用于分页的总条数查询);
enableUpdateByExample(默认true):MyBatis3Simple为false,指定是否生成动态修改语句(只修改对象中不为空的属性);
modelType:参考context元素的defaultModelType,相当于覆盖;
delimitIdentifiers:参考tableName的解释,注意,默认的delimitIdentifiers是双引号,如果类似MYSQL这样的数据库,使用的是`(反引号,那么还需要设置context的beginningDelimiter和endingDelimiter属性)
delimitAllColumns:设置是否所有生成的SQL中的列名都使用标识符引起来。默认为false,delimitIdentifiers参考context的属性
配置好后,执行如下命令,就可以生成了:命令中的路径可以根据本地配置进行修改
java -jar D:Usersjinjunzhu.m2repositoryorgmybatisgeneratormybatis-generator-core1.3.2mybatis-generator-core-1.3.2.jar -configfile "E:source codespringboot-rabbitmqrepositorysrcmainresourcesmybatis-generator.xml" -overwrite
配置如下:在Run->Edit Configurations
配置好之后,执行下图的运行,或者执行命令:
mvn mybatis-generator:generate -e
执行上面命令后,生成文件如下图:
源码地址:
https://github.com/jinjunzhu/springboot-rabbitmq
- java教程
- Java快速入门
- Java 开发环境配置
- Java基本语法
- Java 对象和类
- Java 基本数据类型
- Java 变量类型
- Java 修饰符
- Java 运算符
- Java 循环结构
- Java 分支结构
- Java Number类
- Java Character类
- Java String类
- Java StringBuffer和StringBuilder类
- Java 数组
- Java 日期时间
- Java 正则表达式
- Java 方法
- Java 流(Stream)、文件(File)和IO
- Java 异常处理
- Java 继承
- Java 重写(Override)与重载(Overload)
- Java 多态
- Java 抽象类
- Java 封装
- Java 接口
- Java 包(package)
- Java 数据结构
- Java 集合框架
- Java 泛型
- Java 序列化
- Java 网络编程
- Java 发送邮件
- Java 多线程编程
- Java Applet基础
- Java 文档注释
- 在.NET Core中使用MongoDB明细教程(1):驱动基础及文档插入
- 探索闭包
- openresty实现接口签名安全认证
- JavaScript空值合并运算符
- ROS1&2极简版安装配置案例(Noetic&Foxy@Ubuntu20.04)
- Java调用微信扫一扫
- 响应式布局新方案:融合响应式设计,开源 React 组件
- C++核心准则E.26:如果无法抛出异常,尽快进行失败处理
- 学习|C#的EventHandler的委托使用
- 性能分析(5)- 软中断导致 CPU 使用率过高的案例
- C++核心准则E.27:如果无法抛出异常,系统化运用错误处理代码
- C++核心准则E.28:避免基于全局状态的错误处理(例如errno)
- Docker推送镜像到Hub服务器
- C++核心准则E.30:不要使用抛异常声明
- 自动化微服务治理