Mybatis属于半自动ORM,在使用这个框架中,工作量最大的就是书写Mapping的映射文件,由于手动书写很容易出错,我们可以利用Mybatis-Generator来帮我们自动生成文件。
这里我们使用maven插件的形式。以Intellij IDEA为例,
1.首先安装MyBatis Plugin插件。
2.在pom.xml中添加plugin
在有多个module的项目中有多个pom.xml文件,那么应该在哪一个pom.xml文件中配置插件呢?
src\main\resources\config\mybatis\mybatis-generator.xml这样的话就在mybatis-generator.xml所在的module中配置插件,一般我是这样做的。
<build>
<plugins>
<plugin>
<groupId>org.mybatis.generator</groupId>
<artifactId>mybatis-generator-maven-plugin</artifactId>
<version>1.3.2</version>
<configuration>
<!--项目中mybatis-generator.xml配置文件的位置,一定要保证正确-->
<configurationFile>src\main\resources\config\mybatis\mybatis-generator.xml</configurationFile>
<verbose>true</verbose>
<overwrite>true</overwrite>
</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>
</dependencies>
</plugin>
</plugins>
</build>
3.生成mybatis-generator.xml文件
mybatis-generator.xml内容如下
这里同样有一个问题,就是在多module项目中,下面的targetPackage,targetProject指的是哪一个module下的路径呢?是mybatis-generator.xml所在的module,
所以一般还需要将生成的文件移动到合适的位置中去!
<?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="F:\maven\repos\mysql\mysql-connector-java\5.1.34\mysql-connector-java-5.1.34.jar"/>
<context id="DB2Tables" targetRuntime="MyBatis3">
<!--注释-->
<commentGenerator>
<property name="suppressAllComments" value="true"/>
<property name="suppressDate" value="true"/>
</commentGenerator>
<!--数据库连接-->
<jdbcConnection driverClass="com.mysql.jdbc.Driver" connectionURL="jdbc:mysql://127.0.0.1:3306/mybatis?zeroDateTimeBehavior=convertToNull&
autoReconnect=true&useUnicode=true&characterEncoding=utf-8" userId="root" password="root"/>
<javaTypeResolver>
<property name="forceBigDecimals" value="false"/>
</javaTypeResolver>
<!--生成Model类存放位置-->
<javaModelGenerator targetPackage="com.winner.mybatis.domain" targetProject="src/main/java">
<!--是否对model添加构造函数-->
<property name="constructorBased" value="false"/>
<!--是否允许子包-->
<property name="enableSubPackages" value="true"/>
<!--建立的model对象是否不可变,也就是生成的model没有setter方法-->
<property name="immutable" value="false"/>
<property name="trimStrings" value="false"/>
</javaModelGenerator>
<!--生成映射文件存放位置-->
<sqlMapGenerator targetPackage="com.winner.mybatis.dao" targetProject="src/main/resources">
<property name="enableSubPackages" value="true"/>
</sqlMapGenerator>
<!--生成Mapper类存放位置-->
<javaClientGenerator type="XMLMAPPER" targetPackage="com.winner.mybatis.dao" targetProject="src/main/java">
<property name="enableSubPackages" value="true"/>
</javaClientGenerator>
<!--生成与表对应的类名-->
<table schema="mybatis" tableName="items" domainObjectName="Items" enableInsert="true" enableSelectByExample="false" enableDeleteByPrimaryKey="false" enableDeleteByExample="false" enableCountByExample="false" enableUpdateByExample="false" enableSelectByPrimaryKey="true" enableUpdateByPrimaryKey="true"/>
</context>
</generatorConfiguration>
点击插件,生成代码