众所众知,mybatis是半自动的ORM持久化框架,不像hibernate可以全自动根据库表生产pojo实体类或根据pojo实体类反向生成库表。
不过我们可以利用maven插件的mybatis-generator功能生成mybatis的xml映射文件和数据库对应的实体类。
下面请看生成代码的具体步骤:
1.新建maven项目
2.在pom.xml添加插件
<plugin>
<groupId>org.mybatis.generator</groupId>
<artifactId>mybatis-generator-maven-plugin</artifactId>
<configuration>
<!--允许覆盖生成的文件 -->
<overwrite>true</overwrite>
<!--允许移动生成的文件 -->
<verbose>true</verbose>
</configuration>
</plugin>
3.将generatorConfig.xml文件放在src/java/resourcess根目录下
<?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="D:\Repositories\Maven\mysql\mysql-connector-java\5.1.39\mysql-connector-java-5.1.39.jar" />
<context id="DB2Tables" targetRuntime="MyBatis3">
<commentGenerator>
<property name="suppressAllComments" value="true" />
</commentGenerator>
<!-- 数据库连接信息 -->
<jdbcConnection driverClass="com.mysql.jdbc.Driver" connectionURL="jdbc:mysql://192.168.1.45:3306/cj_test" userId="root" password="udd@123">
</jdbcConnection>
<javaTypeResolver>
<property name="forceBigDecimals" value="false" />
</javaTypeResolver>
<!--model生成路径 -->
<javaModelGenerator targetPackage="shiro.cuijiao.generator.test.model" targetProject="src/main/java">
<property name="enableSubPackages" value="true" />
<property name="trimStrings" value="true" />
</javaModelGenerator>
<!--XML映射文件,生成的位置(目标包),源代码文件夹 -->
<sqlMapGenerator targetPackage="mapper" targetProject="src/main/resources">
<property name="enableSubPackages" value="true" />
</sqlMapGenerator>
<!--和XML关联的dao类生成路径(生成文件名默认是***Mapper.java) -->
<javaClientGenerator type="XMLMAPPER" targetPackage="shiro.cuijiao.generator.test.dao" targetProject="src/main/java">
<property name="enableSubPackages" value="true" />
</javaClientGenerator>
<!--下面是数据库表名和项目中需要生成类的名称,建议和数据库保持一致,如果有多个表,添加多个节点即可 -->
<table schema="public" tableName="dept" domainObjectName="Dept" enableCountByExample="false" enableSelectByExample="false" enableUpdateByExample="false" enableDeleteByExample="false">
</table>
<table schema="public" tableName="emp" domainObjectName="Emp" enableCountByExample="false" enableSelectByExample="false" enableUpdateByExample="false" enableDeleteByExample="false">
</table>
</context>
</generatorConfiguration>
4.执行run as:maven build在goals中输入mybatis-generator:generate
5.刷新项目,即可看到dao、model、mapper包下自动生成的代码
很智能,根据数据库生成实体类和映射文件,类型只能匹配,尤其在库表比较多的时候,节约了我们的时间。
注:注意版本要对,jdk1.8等