利用myBatis-generator自动生产实体类和mapper文件可以大大提高开发效率,接下来就来看看怎么实现把
一.利用idea工具搭建一个maven工程
二. 配置generatorConfig.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>
<!-- 这里数据库jar包是我本地的 -->
<classPathEntry location="E:\tool\maven\repository\com\oracle\ojdbc6\11.2.0.1.0\ojdbc6.jar" />
<context id="context1" defaultModelType="flat">
<plugin type="org.mybatis.generator.plugins.SerializablePlugin">
<property name="suppressJavaInterface" value="false" />
</plugin>
<plugin type="org.mybatis.generator.plugins.EqualsHashCodePlugin">
</plugin>
<!-- 通用Mapper配置-->
<plugin type="tk.mybatis.mapper.generator.MapperPlugin">
<property name="mappers" value="tk.mybatis.mapper.common.Mapper"/>
<property name="mappers" value="tk.mybatis.mapper.common.IdsMapper"/>
<property name="mappers" value="com.cloud.cloud1ribbon.dao.basedao.IBaseMapper"/>
<!-- caseSensitive默认false,当数据库表名区分大小写时,可以将该属性设置为true -->
<property name="caseSensitive" value="true"/>
</plugin>
<!-- 是否 去除/阻止 自动生成的注释 -->
<commentGenerator>
<property name="suppressAllComments" value="false" />
<property name="suppressDate" value="true" />
</commentGenerator>
<!--连接数据库 -->
<jdbcConnection connectionURL="jdbc:oracle:thin:@localhost:1521:XE"
driverClass="oracle.jdbc.driver.OracleDriver" password="clm" userId="clm" />
<!--
默认false,把JDBC DECIMAL 和 NUMERIC 类型解析为 Integer
true,把JDBC DECIMAL 和 NUMERIC 类型解析为java.math.BigDecimal -->
<javaTypeResolver>
<property name="forcBigDecimals" value="false" />
</javaTypeResolver>
<!-- 实体类生成的位置 targetPackage 指定生成的model生成所在的包名
targetProject 指定在该项目下所在的路径
-->
<javaModelGenerator targetPackage="com.cloud.cloud1ribbon.model"
targetProject="../cloud1-ribbon/src/main/java" />
<!-- *Mapper.xml 文件的位置 -->
<sqlMapGenerator targetPackage="mapper"
targetProject="../cloud1-ribbon/src/main/resources" />
<!-- Mapper 接口文件的位置 -->
<javaClientGenerator targetPackage="com.cloud.cloud1ribbon.dao"
type="XMLMAPPER" targetProject="../cloud1-ribbon/src/main/java" />
<!-- 列出要生成代码的所有表,表名和生成的实体名 -->
<!--
1,schema:数据库的schema;
2,catalog:数据库的catalog;
3,alias:为数据表设置的别名,如果设置了alias,那么生成的所有的SELECT SQL语句中,列名会变成:alias_actualColumnName
4,domainObjectName:生成的domain类的名字,如果不设置,直接使用表名作为domain类的名字;可以设置为somepck.domainName,那么会自动把domainName类再放到somepck包里面;
5,enableInsert(默认true):指定是否生成insert语句;
6,enableSelectByPrimaryKey(默认true):指定是否生成按照主键查询对象的语句(就是getById或get);
7,enableSelectByExample(默认true):MyBatis3Simple为false,指定是否生成动态查询语句;
8,enableUpdateByPrimaryKey(默认true):指定是否生成按照主键修改对象的语句(即update);
9,enableDeleteByPrimaryKey(默认true):指定是否生成按照主键删除对象的语句(即delete);
10,enableDeleteByExample(默认true):MyBatis3Simple为false,指定是否生成动态删除语句;
11,enableCountByExample(默认true):MyBatis3Simple为false,指定是否生成动态查询总条数语句(用于分页的总条数查询);
12,enableUpdateByExample(默认true):MyBatis3Simple为false,指定是否生成动态修改语句(只修改对象中不为空的属性);
13,modelType:参考context元素的defaultModelType,相当于覆盖;
14,delimitIdentifiers:参考tableName的解释,注意,默认的delimitIdentifiers是双引号,如果类似MYSQL这样的数据库,使用的是`(反引号,那么还需要设置context的beginningDelimiter和endingDelimiter属性)
15,delimitAllColumns:设置是否所有生成的SQL中的列名都使用标识符引起来。默认为false,delimitIdentifiers参考context的属性
16,useActualColumnNames 如果设置为true,生成的model类会直接使用column本身的名字,而不会再使用驼峰命名方法,
比如BORN_DATE,生成的属性名字就是BORN_DATE,而不会是bornDate
-->
<table schema="" tableName="INF" domainObjectName="Inf"
enableCountByExample="false"
enableSelectByPrimaryKey="true" enableUpdateByPrimaryKey="true"
enableDeleteByPrimaryKey="true"
enableUpdateByExample="false" enableDeleteByExample="false"
enableSelectByExample="false" selectByExampleQueryId="false">
<property name="useActualColumnNames" value="false" />
<!-- <generatedKey column="id" sqlStatement="oracle" identity="true"/> -->
</table>
</context>
</generatorConfiguration>
注意:一定要写对路径,不然会找不到
三.导入相应的jar包
在pom文件中加入下面的代码
<plugin>
<groupId>org.mybatis.generator</groupId>
<artifactId>mybatis-generator-maven-plugin</artifactId>
<version>1.3.2</version>
<configuration>
<overwrite>false</overwrite>
<configurationFile>src/main/resources/generatorConfig/generatorConfig.xml</configurationFile>
</configuration>
<executions>
<execution>
<id>Generate MyBatis Artifacts</id>
<goals>
<goal>generate</goal>
</goals>
</execution>
</executions>
<dependencies>
<dependency>
<groupId>org.mybatis.generator</groupId>
<artifactId>mybatis-generator-core</artifactId>
<version>1.3.2</version>
</dependency>
<dependency>
<groupId>tk.mybatis</groupId>
<artifactId>mapper</artifactId>
<version>3.4.0</version>
</dependency>
<dependency>
<groupId>com.oracle</groupId>
<artifactId>ojdbc6</artifactId>
<version>6.0</version>
</dependency>
</dependencies>
</plugin>
四.运行
1. 在Intellij IDEA添加一个“Run运行”选项,使用maven运行mybatis-generator-maven-plugin插件
2.新添加maven选项
3.自定义名称,选择当前项目,输入命令
注意:之后弹出运行配置框,为当前配置配置一个名称,这里其名为"generator",然后在 “Command line” 选项中输入“mybatis-generator:generate -e”
这里加了“-e ”选项是为了让该插件输出详细信息,这样可以帮助我们定位问题。
4.点击OK后,则会在run 选项中有“generator” 选项,如下:
5.选择generator,点击右边的绿色三角形
6.最后可以看到对应目录下成功生成文件