使用 mybatis 插件生成 javaBean 和 mapper.xml 文件,在开发中非常方便,可以节省很多人力
1、eclipse 下载 mybatis-generator 插件
在 eclipse 的 Eclipse Marketplace 搜索 mybatis,并安装
上图已经安装完 mybatis-generator 插件
2、创建 generatorConfig 的工程目录
在 demo 项目的 resources 目录下创建如下图目录结构
3、创建 generatorConfig.xml 文件
数据库中需要生成代码的表格如下
表格名 a_user
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>
<context id="MysqlTables" targetRuntime="MyBatis3">
<commentGenerator>
<property name="suppressDate" value="true"/>
<!-- 是否去除自动生成的注释 true:是 : false:否 -->
<property name="suppressAllComments" value="true"/>
</commentGenerator>
<!--jdbc链接信息 -->
<jdbcConnection driverClass="com.mysql.jdbc.Driver"
connectionURL="jdbc:mysql://localhost:3306/orcl?useUnicode=true&characterEncoding=utf8"
userId="root" password="123456">
</jdbcConnection>
<javaTypeResolver>
<property name="forceBigDecimals" value="false"/>
</javaTypeResolver>
<!-- 生成实体类的位置 注意 demo/src/main/java demo为项目名 -->
<javaModelGenerator targetPackage="com.che.open.entity"
targetProject="demo/src/main/java">
<property name="enableSubPackages" value="true"/>
<property name="trimStrings" value="true"/>
</javaModelGenerator>
<!-- mapper.xml文件生成位置
<sqlMapGenerator targetPackage="com.che.open.mapper"
targetProject="demo/src/main/resources">
<property name="enableSubPackages" value="true"/>
</sqlMapGenerator>
-->
<!-- mapper.xml文件生成位置,本例将xml文件和mapper接口放到同一包下;读者可根据自己项目情况进行设置
注意 demo/src/main/java demo为项目名 -->
<sqlMapGenerator targetPackage="com.che.open.mapper"
targetProject="demo/src/main/java">
<property name="enableSubPackages" value="true"/>
</sqlMapGenerator>
<!-- mapper接口生成的位置 注意 demo/src/main/java demo为项目名-->
<javaClientGenerator type="XMLMAPPER"
targetPackage="com.che.open.mapper"
targetProject="demo/src/main/java">
<property name="enableSubPackages" value="true"/>
</javaClientGenerator>
<!-- 指定要生成的表 a_user为表名 -->
<table tableName="a_user" domainObjectName="AUserPO"
enableSelectByPrimaryKey="true"
enableCountByExample="false" enableUpdateByExample="false"
enableDeleteByExample="false" enableSelectByExample="false"
selectByExampleQueryId="false">
<!-- useActualColumnNames 设置称 true 生成的model类会直接使用column本身的名字,而不会再使用驼峰命名方法 -->
<property name="useActualColumnNames" value="false"/>
<generatedKey column="id" sqlStatement="MySql" identity="true"/>
</table>
</context>
</generatorConfiguration>
generatorConfig.xml 相关配置的说明已写在代码中
在 pom.xml 文件中添加 mysql 驱动依赖
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.1.46</version>
</dependency>
4、运行 generatorConfig.xml 文件生成 javaBean 和 mapper.xml 文件
5、效果如下
6、扩展
上述配置完成了代码生成,但每次生成代码都需要修改xml文件,相对麻烦,而且看起来有些乱,好的办法是将配置项提取出来单独进行配置,修改后如下
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>
<properties resource="config/mybatis/generatorConfig.properties" />
<context id="MysqlTables" targetRuntime="MyBatis3">
<commentGenerator>
<property name="suppressDate" value="true"/>
<!-- 是否去除自动生成的注释 true:是 : false:否 -->
<property name="suppressAllComments" value="true"/>
</commentGenerator>
<!--jdbc链接信息 -->
<jdbcConnection driverClass="com.mysql.jdbc.Driver"
connectionURL="${jdbc.url}"
userId="${jdbc.user}" password="${jdbc.password}">
</jdbcConnection>
<javaTypeResolver>
<property name="forceBigDecimals" value="false"/>
</javaTypeResolver>
<!-- 生成实体类的位置 注意 demo/src/main/java demo为项目名 -->
<javaModelGenerator targetPackage="${bean}"
targetProject="${target_project}">
<property name="enableSubPackages" value="true"/>
<property name="trimStrings" value="true"/>
</javaModelGenerator>
<!-- mapper.xml文件生成位置,本例将xml文件和mapper接口放到同一包下;读者可根据自己项目情况进行设置
注意 demo/src/main/java demo为项目名 -->
<sqlMapGenerator targetPackage="${mapper_xml}"
targetProject="${target_project_xml}">
<property name="enableSubPackages" value="true"/>
</sqlMapGenerator>
<!-- mapper接口生成的位置 注意 demo/src/main/java demo为项目名-->
<javaClientGenerator type="XMLMAPPER"
targetPackage="${mapper}"
targetProject="${target_project}">
<property name="enableSubPackages" value="true"/>
</javaClientGenerator>
<!-- 指定要生成的表 a_user为表名 -->
<table tableName="${table_name}" domainObjectName="${bean_name}"
enableSelectByPrimaryKey="true"
enableCountByExample="false" enableUpdateByExample="false"
enableDeleteByExample="false" enableSelectByExample="false"
selectByExampleQueryId="false">
<!-- useActualColumnNames 设置称 true 生成的model类会直接使用column本身的名字,而不会再使用驼峰命名方法 -->
<property name="useActualColumnNames" value="false"/>
<generatedKey column="id" sqlStatement="MySql" identity="true"/>
</table>
</context>
</generatorConfiguration>
新增 generatorConfig.properties 文件,其内容如下
jdbc.url=jdbc:mysql://192.168.0.110:3306/manager?useUnicode=true&characterEncoding=utf-8&useSSL=false
jdbc.user=root
jdbc.password=123456
target_project=gmybatis/src/main/java
target_project_xml=gmybatis/src/main/resources
mapper_xml=mapper
bean=com.fin.sys.bean
mapper=com.fin.sys.mapper
table_name=m_userinfo
bean_name=Userinfo
项目结构如下