由于mybatis是半自动的ORM框架,表到POJO的映射可以由mybatis-generator完成,映射文件也可以由它生成,下面介绍生成步骤:
新建maven项目:File-》Others-》Maven->Maven Project
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>
在项目的/src/main/resources(默认目录)的文件目录下加入generateConfig.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="generator.properties"></properties> -->
<!--指定特定数据库的jdbc驱动jar包的位置 -->
<classPathEntry
location="D:\maven_peizhixinxi\local_repository\local_repository\mysql\mysql-connector-java\5.1.18\mysql-connector-java-5.1.18.jar" />
<context id="default" targetRuntime="MyBatis3">
<!-- optional,旨在创建class时,对注释进行控制 -->
<commentGenerator>
<property name="suppressDate" value="true" />
<property name="suppressAllComments" value="true" />
</commentGenerator>
<!--jdbc的数据库连接 -->
<jdbcConnection driverClass="com.mysql.jdbc.Driver"
connectionURL="jdbc:mysql://mysql.local.gene:3306/dms" userId="mmmm"
password="mmmm*1234!">
</jdbcConnection>
<!-- 非必需,类型处理器,在数据库类型和java类型之间的转换控制 -->
<javaTypeResolver>
<property name="forceBigDecimals" value="false" />
</javaTypeResolver>
<!-- Model模型生成器,用来生成含有主键key的类,记录类 以及查询Example类 targetPackage 指定生成的model生成所在的包名
targetProject 指定在该项目下所在的路径 -->
<javaModelGenerator targetPackage="com.mmmm.cms.modules2"
targetProject="src/main/java">
<!-- 是否允许子包,即targetPackage.schemaName.tableName -->
<property name="enableSubPackages" value="false" />
<!-- 是否对model添加 构造函数 -->
<property name="constructorBased" value="false" />
<!-- 是否对类CHAR类型的列的数据进行trim操作 -->
<property name="trimStrings" value="true" />
<!-- 建立的Model对象是否 不可改变 即生成的Model对象不会有 setter方法,只有构造方法 -->
<property name="immutable" value="false" />
</javaModelGenerator>
<!--Mapper映射文件生成所在的目录 为每一个数据库的表生成对应的SqlMap文件 -->
<sqlMapGenerator targetPackage="META-INF.mapper.cms2"
targetProject="src/main/resources">
<property name="enableSubPackages" value="false" />
</sqlMapGenerator>
<!-- 客户端代码,生成易于使用的针对Model对象和XML配置文件 的代码 type="ANNOTATEDMAPPER",生成Java Model
和基于注解的Mapper对象 type="MIXEDMAPPER",生成基于注解的Java Model 和相应的Mapper对象 type="XMLMAPPER",生成SQLMap
XML文件和独立的Mapper接口 -->
<javaClientGenerator targetPackage="com.mmmm.cms.dao2"
targetProject="src/main/java" type="XMLMAPPER">
<property name="enableSubPackages" value="true" />
</javaClientGenerator>
<table tableName="statistical_result" domainObjectName="StatisticalResult"
enableCountByExample="false" enableUpdateByExample="false"
enableDeleteByExample="false" enableSelectByExample="false"
selectByExampleQueryId="false">
</table>
<table tableName="batch_run_result" domainObjectName="BatchRunResult"
enableCountByExample="false" enableUpdateByExample="false"
enableDeleteByExample="false" enableSelectByExample="false"
selectByExampleQueryId="false">
</table>
</context>
</generatorConfiguration>
4:项目 右键--》run as --》 maven bulid --》弹出对话框 --》在goals中输入mybatis-generator:generate
5:选择项目 按 F5 刷新项目 出现生成的代码
ps:附一个db2的代码自动生成配置文件
<?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:/local_maven_repo/com/ibm/db2/db2jcc4/9.7.6/db2jcc4-9.7.6.jar" />
<context id="context1">
<commentGenerator>
<property name="suppressDate" value="true" />
</commentGenerator>
<!-- JDBC驱动,参考工程配置的数据源的配置文件,从中获取值填入 -->
<jdbcConnection driverClass="com.ibm.db2.jcc.DB2Driver"
connectionURL="jdbc:db2://197.1.5.84:60008/TTSDB:currentSchema=SCM_TESLA_TUTORIAL;"
userId="ttsapp" password="ttsapp1234">
</jdbcConnection>
<!-- 生成Domain文件地址,targetProject属性对应的值为Eclipse中工程的名称,需修改为自己的工程 -->
<javaModelGenerator targetPackage="com.tesla.common.domain"
targetProject="tesla-tutorial">
<property name="trimStrings" value="true" />
</javaModelGenerator>
<!-- 生成XML文件地址 -->
<sqlMapGenerator targetPackage="com.tesla.common.mapper"
targetProject="tesla-tutorial" />
<!-- 生成的接口代码地址 -->
<javaClientGenerator targetPackage="com.tesla.common.mapper"
targetProject="tesla-tutorial" type="XMLMAPPER" />
<table schema="SCM_TESLA_TUTORIAL" tableName="ROLE" />
<table schema="SCM_TESLA_TUTORIAL" tableName="USER" />
<table schema="SCM_TESLA_TUTORIAL" tableName="USERS_ROLES" />
</context>
</generatorConfiguration>