使用mybatis-generator生成自动生成mapper.java和mapper.xml等文件
首先,新建一个maven项目



groupid和artifactId被统称为“坐标”,可以保证项目的唯一性,可以根据这两个id去maven本地仓库中查找到任意项目.
groupId对应JAVA的包的结构,是main目录里java的目录结构。 一般分为多个段,这里说明前两段:第一段是域,第二段是公司名称。域又分为org、com、cn等等许多,其中org为非营利组织,com为商业组织。
artifactId是项目的唯一的标识符,实际对应项目的名称,就是项目根目录的名称。
就如我所在的公司京颐集团,缩写为kyee,公司的产品groupId就是com.kyee,因为公司产品是盈利性质的;再如apache公司的tomcat项目:这个项目的groupId是org.apache,它的域是org(因为tomcat是非营利项目),公司名称是apache,artigactId是tomcat。
按照这个规则,我所创建的项目,groupId为cn.qizi,cn表示域为中国,qizi是我的网络常用名。artifactId设置为testMybatisGenerator,是此项目的名称。依照这个设置,我的包结构最好是cn.qizi.testMybatisGenerator打头的,如果有个StudentDao,它的全路径就是cn.qizi.testMybatisGenerator.dao.StudentDao。


项目生成,接下来就是增加下面图中结构,用以存放各层文件

到这里,项目的架子就已经搭起来了,我们也该进入正题,讲解如何使用mybatis-generator生成自动生成mapper.java和mapper.xml等文件
首先要配置pom.xml,加载mybatis-generator插件和依赖。在pom.xml文件中增加:
<build>
<plugins>
<plugin>
<groupId>org.mybatis.generator</groupId>
<artifactId>mybatis-generator-maven-plugin</artifactId>
<version>1.3.2</version>
<configuration>
<configurationFile>src/main/resources/generatorConfig.xml</configurationFile>
<verbose>true</verbose>
<overwrite>true</overwrite>
</configuration>
<dependencies>
<dependency>
<groupId>org.mybatis.generator</groupId>
<artifactId>mybatis-generator-core</artifactId>
<version>1.3.2</version>
</dependency>
<dependency>
<groupId>com.oracle</groupId>
<artifactId>ojdbc6</artifactId>
<version>11.2.0.1.0</version>
</dependency>
</dependencies>
</plugin>
</plugins>
</build>
按照路径src/main/resources/generatorConfig.xml创建配置文件,配置文件中引入了db.properties.

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="db.properties"></properties>
<context id="testTables" targetRuntime="MyBatis3">
<commentGenerator>
<!-- 是否去除自动生成的注释 true:是; false:否 -->
<property name="suppressAllComments" value="true" />
</commentGenerator>
<!--数据库连接的信息:驱动类、连接地址、用户名、密码 -->
<jdbcConnection driverClass="${jdbc.driver}"
connectionURL="${jdbc.url}"
userId="${jdbc.username}"
password="${jdbc.password}">
</jdbcConnection>
<!-- 默认false,把JDBC DECIMAL 和 NUMERIC 类型解析为 Integer,为 true时把JDBC DECIMAL 和
NUMERIC 类型解析为java.math.BigDecimal -->
<javaTypeResolver>
<property name="forceBigDecimals" value="false" />
</javaTypeResolver>
<!-- targetProject:生成PO类的位置 -->
<javaModelGenerator targetPackage="cn.qizi.testMybatisGenerator.pojo"
targetProject="src/main/java">
<!-- enableSubPackages:是否让schema作为包的后缀 -->
<property name="enableSubPackages" value="false" />
<!-- 从数据库返回的值被清理前后的空格 -->
<property name="trimStrings" value="true" />
</javaModelGenerator>
<!-- targetProject:mapper映射文件生成的位置 -->
<sqlMapGenerator targetPackage="cn.qizi.testMybatisGenerator.mapper"
targetProject="src/main/resources">
<!-- enableSubPackages:是否让schema作为包的后缀 -->
<property name="enableSubPackages" value="false" />
</sqlMapGenerator>
<!-- targetPackage:mapper接口生成的位置 -->
<javaClientGenerator type="XMLMAPPER"
targetPackage="cn.qizi.testMybatisGenerator.dao"
targetProject="src/main/java">
<!-- enableSubPackages:是否让schema作为包的后缀 -->
<property name="enableSubPackages" value="false" />
</javaClientGenerator>
<!-- 指定数据库表 -->
<table schema="" tableName="PAY_TRANSACTION_DETAIL"/>
<!-- 有些表的字段需要指定java类型
<table schema="" tableName="">
<columnOverride column="" javaType="" />
</table> -->
</context>
</generatorConfiguration>
db.properties文件内容:
jdbc.driver=oracle.jdbc.driver.OracleDriver
jdbc.url=jdbc:oracle:thin:@192.168.20.250:1521:orcl
jdbc.username=xxxxxx
jdbc.password=xxxxxx
到此,便配置完成,可以生成相关文件了:

然后你会发现,你想要的文件已经出现:

希望本文能帮到像我一样的菜鸟,同样希望大神看到,见笑之余,能不吝赐教,解答下一直困扰我的问题:
1.就是按照此流程生成的.xml文件,内容重复了三遍,每次都要我手动删除;
2.使用这些自动生成的文件进行单表查询还算方便,但对于多表关联查询就很麻烦了,有什么好的解决办法么?
groupid和artifactId被统称为“坐标”,可以保证项目的唯一性,可以根据这两个id去maven本地仓库中查找到任意项目.
groupId对应JAVA的包的结构,是main目录里java的目录结构。 一般分为多个段,这里说明前两段:第一段是域,第二段是公司名称。域又分为org、com、cn等等许多,其中org为非营利组织,com为商业组织。
artifactId是项目的唯一的标识符,实际对应项目的名称,就是项目根目录的名称。
就如我所在的公司京颐集团,缩写为kyee,公司的产品groupId就是com.kyee,因为公司产品是盈利性质的;再如apache公司的tomcat项目:这个项目的groupId是org.apache,它的域是org(因为tomcat是非营利项目),公司名称是apache,artigactId是tomcat。
按照这个规则,我所创建的项目,groupId为cn.qizi,cn表示域为中国,qizi是我的网络常用名。artifactId设置为testMybatisGenerator,是此项目的名称。依照这个设置,我的包结构最好是cn.qizi.testMybatisGenerator打头的,如果有个StudentDao,它的全路径就是cn.qizi.testMybatisGenerator.dao.StudentDao。
项目生成,接下来就是增加下面图中结构,用以存放各层文件
到这里,项目的架子就已经搭起来了,我们也该进入正题,讲解如何使用mybatis-generator生成自动生成mapper.java和mapper.xml等文件
首先要配置pom.xml,加载mybatis-generator插件和依赖。在pom.xml文件中增加:
<build>
<plugins>
<plugin>
<groupId>org.mybatis.generator</groupId>
<artifactId>mybatis-generator-maven-plugin</artifactId>
<version>1.3.2</version>
<configuration>
<configurationFile>src/main/resources/generatorConfig.xml</configurationFile>
<verbose>true</verbose>
<overwrite>true</overwrite>
</configuration>
<dependencies>
<dependency>
<groupId>org.mybatis.generator</groupId>
<artifactId>mybatis-generator-core</artifactId>
<version>1.3.2</version>
</dependency>
<dependency>
<groupId>com.oracle</groupId>
<artifactId>ojdbc6</artifactId>
<version>11.2.0.1.0</version>
</dependency>
</dependencies>
</plugin>
</plugins>
</build>
按照路径src/main/resources/generatorConfig.xml创建配置文件,配置文件中引入了db.properties.
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="db.properties"></properties>
<context id="testTables" targetRuntime="MyBatis3">
<commentGenerator>
<!-- 是否去除自动生成的注释 true:是; false:否 -->
<property name="suppressAllComments" value="true" />
</commentGenerator>
<!--数据库连接的信息:驱动类、连接地址、用户名、密码 -->
<jdbcConnection driverClass="${jdbc.driver}"
connectionURL="${jdbc.url}"
userId="${jdbc.username}"
password="${jdbc.password}">
</jdbcConnection>
<!-- 默认false,把JDBC DECIMAL 和 NUMERIC 类型解析为 Integer,为 true时把JDBC DECIMAL 和
NUMERIC 类型解析为java.math.BigDecimal -->
<javaTypeResolver>
<property name="forceBigDecimals" value="false" />
</javaTypeResolver>
<!-- targetProject:生成PO类的位置 -->
<javaModelGenerator targetPackage="cn.qizi.testMybatisGenerator.pojo"
targetProject="src/main/java">
<!-- enableSubPackages:是否让schema作为包的后缀 -->
<property name="enableSubPackages" value="false" />
<!-- 从数据库返回的值被清理前后的空格 -->
<property name="trimStrings" value="true" />
</javaModelGenerator>
<!-- targetProject:mapper映射文件生成的位置 -->
<sqlMapGenerator targetPackage="cn.qizi.testMybatisGenerator.mapper"
targetProject="src/main/resources">
<!-- enableSubPackages:是否让schema作为包的后缀 -->
<property name="enableSubPackages" value="false" />
</sqlMapGenerator>
<!-- targetPackage:mapper接口生成的位置 -->
<javaClientGenerator type="XMLMAPPER"
targetPackage="cn.qizi.testMybatisGenerator.dao"
targetProject="src/main/java">
<!-- enableSubPackages:是否让schema作为包的后缀 -->
<property name="enableSubPackages" value="false" />
</javaClientGenerator>
<!-- 指定数据库表 -->
<table schema="" tableName="PAY_TRANSACTION_DETAIL"/>
<!-- 有些表的字段需要指定java类型
<table schema="" tableName="">
<columnOverride column="" javaType="" />
</table> -->
</context>
</generatorConfiguration>
db.properties文件内容:
jdbc.driver=oracle.jdbc.driver.OracleDriver
jdbc.url=jdbc:oracle:thin:@192.168.20.250:1521:orcl
jdbc.username=xxxxxx
jdbc.password=xxxxxx
到此,便配置完成,可以生成相关文件了:
然后你会发现,你想要的文件已经出现:
希望本文能帮到像我一样的菜鸟,同样希望大神看到,见笑之余,能不吝赐教,解答下一直困扰我的问题:
1.就是按照此流程生成的.xml文件,内容重复了三遍,每次都要我手动删除;
2.使用这些自动生成的文件进行单表查询还算方便,但对于多表关联查询就很麻烦了,有什么好的解决办法么?