在pom.xml增加以下插件:
<plugin> <groupId>org.mybatis.generator</groupId> <artifactId>mybatis-generator-maven-plugin</artifactId> <version>1.3.2</version> <configuration> <verbose>true</verbose> <overwrite>true</overwrite> </configuration> </plugin>
1.3.2版本,才能取消注释。
配置好Maven插件,下面需要配置插件需要的配置文件
<?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 location="D:\repo\mysql\mysql-connector-java\5.1.6\mysql-connector-java-5.1.6.jar" /> <context id="context1" targetRuntime="MyBatis3"> <jdbcConnection driverClass="com.mysql.jdbc.Driver" connectionURL="jdbc:mysql://xxxxxxx:8406/CL_DEMO?useUnicode=true&characterEncoding=UTF-8" userId="root" password="password" /> <javaModelGenerator targetPackage="xxx.account.model" targetProject="D:\workspace\项目名\src\main\java" /> <sqlMapGenerator targetPackage="xxxx.account.persistence" targetProject="D:\workspace\项目名\包名\src\main\resources" /> <javaClientGenerator targetPackage="xxxx.account.persistence targetProject="D:\\workspace\项目名\src\main\java" type="XMLMAPPER" /> <table schema="CL_DEMO" tableName="tb_user" /> <table schema="CL_DEMO" tableName="tb_role" /> <table schema="CL_DEMO" tableName="tb_permission" /> <table schema="CL_DEMO" tableName="tb_role_user" /> <table schema="CL_DEMO" tableName="tb_permission_role" /> </context> </generatorConfiguration>
插件默认会读到src/main/resources目录下的generatorConfig.xml 文件。
如果是在eclipse中,选择pom.xml文件,击右键先择Run AS——>Maven Build… ——>在Goals框中输入:mybatis-generator:generate
如果在命令行输入Maven命令即可,注意:一定是当前项目目录下运行该命令:
mvn mybatis-generator:generate
generatorConfig配置项说明
<context>元素
在MBG的配置中,至少需要有一个<context>元素。
<context>元素用于指定生成一组对象的环境。
例如指定要连接的数据库,要生成对象的类型和要处理的数据库中的表。运行MBG的时候还可以指定要运行的<context>。
该元素只有一个必选属性id,用来唯一确定一个<context>元素,该id属性可以在运行MBG的使用。
此外还有几个可选属性:
defaultModelType:**这个属性很重要**,这个属性定义了MBG如何生成**实体类**。
targetRuntime:此属性用于指定生成的代码的运行时环境。
<javaTypeResolver> 元素
这个元素的配置用来指定JDBC类型和Java类型如何转换。
该属性有一个可以配置的<property>元素。
可以配置的属性为forceBigDecimals,该属性可以控制是否强制DECIMAL和NUMERIC类型的字段转换为Java类型的java.math.BigDecimal,默认值为false,一般不需要配置。
默认情况下的转换规则为:
如果精度>0或者长度>18,就会使用java.math.BigDecimal
如果精度=0并且10<=长度<=18,就会使用java.lang.Long
如果精度=0并且5<=长度<=9,就会使用java.lang.Integer
如果精度=0并且长度<5,就会使用java.lang.Short
如果设置为true,那么一定会使用java.math.BigDecimal,配置示例如下:
<javaTypeResolver >
<property name="forceBigDecimals" value="true" />
</javaTypeResolver>
<javaClientGenerator> 元素用于生成Mapper接口。
type:type=XMLMAPPER所有的方法都在XML中,接口调用依赖XML文件。
targetPackage:生成实体类存放的包名,一般就是放在该包下。
targetProject:指定目标项目路径,使用的是文件系统的绝对路径。
trimStrings:是否对数据库查询结果进行trim操作,如果设置为true就会生成类似这样public void setUsername(String username) {this.username = username == null ? null : username.trim();}的setter方法。默认值为false。
<table> 该元素用来配置要通过内省的表。只有配置的表才会生成实体类和其他文件。
enableXXX:XXX代表多种SQL方法,该属性用来指定是否生成对应的XXX语句
<update id="updateByExample" parameterType="map"> update lk_user set id = #{record.id,jdbcType=NUMERIC}, account = #{record.account,jdbcType=VARCHAR}, password = #{record.password,jdbcType=VARCHAR}, is_removed = #{record.isRemoved,jdbcType=CHAR}, gmt_create = #{record.gmtCreate,jdbcType=TIMESTAMP}, gmt_modified = #{record.gmtModified,jdbcType=TIMESTAMP}, creator_id = #{record.creator,jdbcType=NUMERIC}, modifier_id = #{record.modifier,jdbcType=NUMERIC} <if test="_parameter != null"> <include refid="Update_By_Example_Where_Clause" /> </if> </update>
<table>元素的子元素
<generatedKey>这个元素用来指定自动生成主键的属性(identity字段或者sequences序列)。
如果指定这个元素,MBG在生成insert的SQL映射文件中插入一个<selectKey>元素,非常重要。
这个元素包含下面两个必选属性:
column:生成列的列名。
sqlStatement:将返回新值的 SQL 语句。如果这是一个identity列,您可以使用其中一个预定义的的特殊值。
预定义值如下:
Cloudscape、DB2、DB2_MF、Derby、HSQLDB、Informix、MySql、SqlServer、SYBASE、JDBC:
这会配置MBG使用MyBatis3支持的JDBC标准的生成key来生成代码。 这是一个独立于数据库获取标识列中的值的方法。
重要: 只有当目标运行为MyBatis3时才会产生正确的代码。 如果与iBATIS2一起使用目标运行时会产生运行时错误的代码。
这个元素还包含两个可选属性:
配置示例一:
<table tableName="user login info" domainObjectName="UserLoginInfo"> <generatedKey column="id" sqlStatement="Mysql"/> </table>
对应的生成的结果:
<insert id="insert" parameterType="test.model.UserLoginInfo"> <selectKey keyProperty="id" order="BEFORE" resultType="java.lang.Integer"> SELECT LAST_INSERT_ID() </selectKey> insert into `user login info` (Id, username, logindate, loginip) values (#{id,jdbcType=INTEGER}, #{username,jdbcType=VARCHAR}, #{logindate,jdbcType=TIMESTAMP}, #{loginip,jdbcType=VARCHAR}) </insert>
这个插件,有很多地方需要自定义。
例如,删除操作,它使用的是物理删除,一般我们都使用逻辑删除。
我们可以通过修改源码,然个性化生成的代码。
IntrospectedTableMyBatis3Impl true属性是用来控制是否合并生成xml文件,这里显然默认就是合并
XMLMapperGenerator增加后缀Ext
OutputUtilities更改xml空格
UpdateByPrimaryKeySelectiveElementGenerator 增加is_delete=n
SelectByPrimaryKeyElementGenerator 增加is_delete=n
修改DeleteByPrimaryKeyMethodGenerator,可以修改delete方法的入参
大对象类型的处理:
mybatis-generator默认会把所有jdbcType为:BINARY、BLOB、CLOB、LONGVARBINARY、LONGVARCHAR、VARBINARY这些类型都作为大对象,
反应出来的效果就是生成的pojo类会多一个类名+WithBLOBs.java的文件(含有的大对象个数大于1时),
而在XML里面也会增加一个id为ResultMapWithBLOBs的resultMap,它继承BaseResultMap。
相关推荐
本文主要介绍 Maven插件生成Mybatis代码,现在做开发的朋友有好多用Maven 来管理代码,这里给大家举个例子,有需要的同学可以看下
Maven插件之mybatis-generator自动生成实体代码的demo
mybatis反向生成maven插件完美生成代码,运行generator插件 运行方法:在eclipse 中,选择pom.xml文件,击右键先择Run AS——>Maven Build… ——>在Goals框中输入:mybatis-generator:generate 运行即可 这样,...
利用maven的MyBatis Generator 插件自动创建代码示例利用maven的MyBatis Generator 插件自动创建代码示例利用maven的MyBatis Generator 插件自动创建代码示例
1.Mybatis Plus代码生成器 1.1.自定义配置模板 1.2.自定义表-实体映射信息 1.3.多数据源管理 1.4.操作记忆功能 1.5.操作化繁为简 2.工程化(maven,spring boot) 2.1.生成maven工程 2.2.生成...
项目导入成功后 生成方式 : 选中pom.xml运行Run As --- Goals:mybatis-generator:generate
mybatis的maven的jar,可以方便的使用maven插件,一键生成sql
实用mybatis的maven插件实现自动生成实体dao接口等代码,内附详细注释
本源码为基于Mybatis-Plus的Maven代码生成插件设计,共包含25个文件,其中java文件14个,vm文件6个,gitignore文件1个,project文件1个,LICENSE文件1个,md文件1个,xml文件1个。该项目是一个Mybatis-Plus Maven...
花了两天时间,将springboot框架搞定,maven+springboot+ mybatis+mysql+代码自动插件+log4j日志
在idea下使用maven的mybatis-generator-maven-plugin插件自动生成实体映射文件
maven安装与配置 安装和配置Maven的步骤如下:12 确保已安装JDK。Maven 3.9+版本需要JDK 8或更高版本。可以通过输入java -version来检查JDK是否安装以及其版本。 下载Maven。访问Maven官网下载最新版本,例如...
SpringBoot+MyBatis+Maven搭建的小demo。支持mybatis-generator插件自动生成mybatis代码。
为了在项目中快捷方便的代码生成,将mybatis-plus-generator封装为了一个maven的插件`mybatis-plus-generator-maven-plugin。使用文档参考:https://blog.csdn.net/xiweiller/article/details/103072165
maven安装与配置 确保已安装JDK。Maven 3.9+版本需要JDK 8或更高版本。可以通过输入java -version来检查JDK是否安装以及其版本。 下载Maven。访问Maven官网下载最新版本,例如3.9.1。对于Windows用户,通常下载...
mybatis的使用可以自动生成dao层和它所对应的映射文件以及基础类,maven的使用省略了手动导包的过程,更加的方便快捷,使用这些工具必不可少的就是插件的安装
NULL 博文链接:https://terry0501.iteye.com/blog/2427963
mybatis-generator有三种用法:命令行、eclipse插件、maven插件。 个人在此用的是命令行. 使用方法: 1.下载,解压.加入项目中 2.更改config.xml中数据库连接信息和生成文件的目标包路径 3.保存退出 4.点击code.bat...
根据项目模块来生成对应的Mapper,这里采用Maven构建...Mybatis Generator插件怎么使用请参考:https://my.oschina.net/boonya/blog/719502。更多代码生成器介绍请参考:http://www.mybatis.org/generator/index.html
而对于“针对项目进行代码生成”等操作更适合设计成“工具”来使用,所以相比起零散的代码类,独立的jar包等方式,还不如能集成进项目又能独立使用的maven插件来得合适。故本插件内部封装了“mybatis-generator-...