在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的代码和映射文件。 首先,我们需要在项目的pom.xml文件中配置MyBatis代码生成器插件。这个插件的配置包括groupId、artifactId、version和configuration标签。在...
而MyBatis Generator(MBG)则是MyBatis框架的一部分,它能够自动生成MyBatis相关的Java代码,包括实体类、Mapper接口、Mapper XML文件等,大大提升了开发效率。本文将详细介绍如何利用Maven插件集成MyBatis ...
MyBatis Generator(MBG)是一个强大的工具,用于自动生成MyBatis的SQL映射文件,DAO接口和实现,以及实体类。通过这个插件,开发者可以显著提高开发效率,减少手动编写重复代码的工作量。以下是对MyBatis Generator...
MyBatis代码生成工具是一款基于MyBatis框架的实用辅助工具,主要用于自动化生成MyBatis相关的Java源代码,包括实体类、Mapper接口、Mapper XML文件以及对应的SQL映射语句。这款工具极大地提高了开发效率,减少了手动...
mybatis反向生成maven插件完美生成代码,运行generator插件 运行方法:在eclipse 中,选择pom.xml文件,击右键先择Run AS——>Maven Build… ——>在Goals框中输入:mybatis-generator:generate 运行即可 这样,...
通过以上步骤,我们可以利用Maven与MyBatis Generator的结合,实现自动化生成MyBatis映射文件,提升开发效率,减少手动编写重复代码的工作量。记得在实际应用中根据项目特点进行适当的调整和优化。
1. `pom.xml` - Maven项目的配置文件,包含了Mybatis代码生成插件的配置。 2. `generatorConfig.xml` - 代码生成器的配置文件,定义了数据库连接信息、生成规则等。 3. `Java程序源代码` - 如果选择了Java程序生成...
利用maven的MyBatis Generator 插件自动创建代码示例利用maven的MyBatis Generator 插件自动创建代码示例利用maven的MyBatis Generator 插件自动创建代码示例
3. **运行MBG**:在Java环境中,通过调用MyBatis Generator的API或使用Maven插件来执行生成操作。 4. **检查生成结果**:MBG会按照配置文件中的设置,自动生成对应的Java类和XML文件,开发者可以查看并集成到项目中...
2. **运行生成器**: 使用Java代码或者Maven插件运行代码生成器,指定配置文件的位置。 3. **生成代码**: 代码生成器会根据配置读取数据库中的表信息,自动生成对应的Mapper接口、Mapper XML文件和实体类文件。 4. ...
1.Mybatis Plus代码生成器 1.1.自定义配置模板 1.2.自定义表-实体映射信息 1.3.多数据源管理 1.4.操作记忆功能 1.5.操作化繁为简 2.工程化(maven,spring boot) 2.1.生成maven工程 2.2.生成...
本源码为基于Mybatis-Plus的Maven代码生成插件设计,共包含25个文件,其中java文件14个,vm文件6个,gitignore文件1个,project文件1个,LICENSE文件1个,md文件1个,xml文件1个。该项目是一个Mybatis-Plus Maven...
总结来说,"Maven插件源码:根据库表生成实体类&根据实体类生成库表"是一个高效且实用的开发工具,它整合了数据库与Java代码的自动化生成,提高了开发效率,降低了错误的可能性。对于大型项目或频繁迭代的系统,这样...
在IT行业中,Maven和MyBatis是两个非常...总之,Maven MyBatis插件是提高开发效率和代码质量的有效工具,通过合理配置和使用,能够显著提升Java Web开发中的持久层代码生成效率,让开发者更多地专注于业务逻辑的实现。
Mybatis Generator是一款强大的工具,它能够帮助开发人员自动化地生成Mybatis框架所需的SQL映射文件、Java实体类以及DAO接口等代码,极大地提高了开发效率。本教程将详细讲解如何使用Mybatis Generator针对Mysql和...
MyBatis Generator(MBG)是一款强大的自动化代码生成工具,专为简化MyBatis框架的使用而设计。它能够根据数据库表结构自动生成Java实体类、Mapper接口与XML配置文件,以及Service和Controller层的代码,极大地提高...
例如,开发者可以使用Maven的插件生成MyBatis的Mapper接口和XML配置文件,使得数据库操作更加便捷。 在"day04-Maven&MyBatis.zip"这个压缩包中,可能包含了一个简单的Java Web项目,该项目展示了如何配置Maven和...
ui界面,非maven直接运行)mybatis-generator-core"中,我们看到的是一个具有图形用户界面的MBG版本,这意味着用户可以通过UI来直观地选择要生成代码的数据库表和目标路径,而无需通过命令行或者Maven插件来操作。...
总结来说,这个项目利用MyBatis Generator的Maven插件,结合IDEA开发环境、JDK1.8、Tomcat8.5和Maven3.5,实现自动化的代码生成,提高了开发效率,减少了手动编写重复代码的工作量。通过配置MBG的生成规则和Maven...
现在,你已经完成了通过MyBatis Maven插件自动生成代码的过程。 使用MBG插件可以极大地提升开发效率,减少手动编写重复代码的工作量。同时,MBG也支持自定义模板,可以根据项目需求定制生成的代码风格。记得在实际...