MyBatis逆向构建工程
MyBatis
Mybatis是一款优秀的轻量级O/R mapping框架。就像Hibernate能够将Pojo和数据库表关联起来一样,mybatis能够将Pojo和sql关联映射起来。它的逆向工程能够根据数据库表生成POJO、DAO和mapper.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>
<!--数据库驱动jar -->
<classPathEntry
location="E:\mysql-connector-5.1.5.jar" />
<context id="xxx" targetRuntime="MyBatis3">
<!--去除注释 -->
<commentGenerator>
<property name="suppressAllComments" value="true" />
</commentGenerator>
<!--数据库连接 -->
<jdbcConnection driverClass="com.mysql.jdbc.Driver"
connectionURL="jdbc:mysql://xxx:3306/xxx"
userId="xxx"
password="xxx">
</jdbcConnection>
<!--默认false Java type resolver will always use java.math.BigDecimal if
the database column is of type DECIMAL or NUMERIC. -->
<javaTypeResolver>
<property name="forceBigDecimals" value="false" />
</javaTypeResolver>
<!--生成实体类 指定包名 以及生成的地址 (可以自定义地址,但是路径不存在不会自动创建 使用Maven生成在target目录下,会自动创建) -->
<javaModelGenerator targetPackage="com.mycompany.app.model"
targetProject="src/main/java">
<property name="enableSubPackages" value="true" />
<property name="trimStrings" value="true" />
</javaModelGenerator>
<!--生成SQLMAP文件 -->
<sqlMapGenerator targetPackage="com.mycompany.app.dao"
targetProject="src/main/resources">
<property name="enableSubPackages" value="true" />
</sqlMapGenerator>
<javaClientGenerator type="XMLMAPPER"
targetPackage="com.mycompany.app.dao" targetProject="src/main/java">
<property name="enableSubPackages" value="true" />
</javaClientGenerator>
<!--对应数据库表 mysql可以加入主键自增 字段命名 忽略某字段等 -->
<table schema="test" tableName="train_tp" domainObjectName="TrainTp"
enableCountByExample="true" enableUpdateByExample="true"
enableDeleteByExample="true" enableSelectByExample="true"
selectByExampleQueryId="true">
<generatedKey column="ID" sqlStatement="mysql" identity="true" />
</table>
</context>
</generatorConfiguration>
- 上述配置文件指明了mysql driver会用来连接database。
classPathEntry
指明了mysql-driver的加载路径。jdbcConnection
表明了连接参数。 JavaTypeResolver
不应该强制限定BigDecimal,这样mybatis就能够根据表字段的实际数据类型选择合适的java类(如:Short,Integer, Long)。javaModelGenerator
应使用子路径,在本例中生成的POJO将会放在com.mycompany.app.model
下。为了避免数据库表字段的值中出现两端的空格,trimStrings应该使用,意味着setter方法中会调用String的trim对传入的参数进行处理。本例中table为train_tp,POJO名为TrainTp。sqlMapGenerator
应使用子路径,在本例中生成的TrainTpMapper.xml文件将会放在com.mycompany.app.mapper
路径下。javaClientGenerator
应使用子路径,在本例中生成的TrainTpMapper.java文件将会放在com.mycompany.app.mapper
路径下。table
对应着目标数据库表。generateKey
意味着mysql 的主键自增。
生成方法
mvn org.mybatis.generator:mybatis-generator-maven-plugin:1.3.0:generate
使用命令行,在工程目录pom所在的地方构建。
生成结果
注意:配置中将mapper.xml的targetProject定为了src/main/resources。但是,所在的com.mycompany.app.dao必须跟TrainTpMapper.java所在的路径一样:com.mycompany.app.dao。这样在以后spring和mybatis集成的时候才能找到。
使用方法
TrainTpExample:
如果删除一个信息:
public int deleteInfo(long user_id,long team_id){
TrainTpExample ue = new TrainTpExample();
ue.createCriteria()
.andUserIdEqualTo(new BigDecimal(user_id))
.andTeamIdEqualTo(new BigDecimal(team_id));
return trainTpMapper.deleteByExample(ue);
}
生成的Example类是用来集成各种条件进行操作的,createCriteria
用来生成各种条件。
trainTpMapper为调用接口,是TrainTpMapper类。
在spring和mybatis集成的时候即可使用@Resource或@Autowire进行直接声明。
mybatis官方文档:http://mybatis.github.io/generator/configreference/xmlconfig.html
版权声明:本文为博主原创文章,未经博主允许不得转载。
时间: 2024-11-06 06:39:23