创建逆向工程,基于mybatis
1、创建新工程
2、导入相关的jar包
/lib/ehcache-core-2.6.8.jar
/lib/mybatis-3.4.1.jar
/lib/mybatis-ehcache-1.0.3.jar
/lib/mybatis-generator-core-1.3.2.jar
/lib/mysql-connector-java-5.1.37-bin.jar
3、配置相关文件
properties:数据库相关配置
jdbc.driver=com.mysql.jdbc.Driver
jdbc.url=jdbc:mysql://localhost:3306/####?allowMultiQueries=true
jdbc.username=root
jdbc.password=root
配置mybatis-config.xml
<!--
1. properties: 支持做一些属性的配置 或者是 直接引入外部的属性文件
resource: 引入类路径下的资源文件
url: 引入网络路径或者是磁盘路径下的资源文件
-->
<properties resource="db.properties" >
</properties>
<!-- 2. settings: 包含很多重要的设置项. -->
<settings>
<!-- 映射下划线到驼峰命名 last_name ==>lastName -->
<setting name="mapUnderscoreToCamelCase" value="true"/>
<setting name="jdbcTypeForNull" value="NULL"/>
<!-- 开启延迟加载 -->
<setting name="lazyLoadingEnabled" value="true"/>
<!-- 设置按需加载 -->
<setting name="aggressiveLazyLoading" value="false"/>
<!-- 开启二级缓存的使用 -->
<setting name="cacheEnabled" value="true"/>
</settings>
<!-- 3. typeAliases :别名处理
typeAlias: 为单个的java类型取别名
type: 指定全类名
alias: 指定别名. 默认的别名就是类名.
package: 批量取别名。 为指定包以及子包下所有的类取默认的别名.
如果有别名冲突的情况,可以使用@Alias取别名.
-->
<typeAliases>
<!-- <typeAlias type="com.atguigu.mybatis.beans.Employee" alias="employee"/> -->
<package name="com.atguigu.mybatis.beans"/>
</typeAliases>
<!--4. environments : 数据库环境环境
Mybatis支持配置多个环境. 使用default来指定具体使用的环境.
<environment>: 具体的环境配置
<transactionManager> : 事务管理
JDBC : JdbcTransactionFactory
MANAGED:ManagedTransactionFactory
最终: 事务管理交给Spring.
<dataSource> : 数据源
UNPOOLED:不使用连接池 UnpooledDataSourceFactory
POOLED:使用连接池 PooledDataSourceFactory
JNDI: 从应用服务器中获取连接.JndiDataSourceFactory
最终: 数据源交给Spring .
-->
<environments default="development">
<environment id="development">
<transactionManager type="JDBC" />
<dataSource type="POOLED">
<property name="driver" value="${jdbc.driver}" />
<property name="url" value="${jdbc.url}" />
<property name="username" value="${jdbc.username}" />
<property name="password" value="${jdbc.password}" />
</dataSource>
</environment>
<!-- <environment id="test">
<transactionManager type=""></transactionManager>
<dataSource type=""></dataSource>
</environment> -->
</environments>
<!-- 5. mappers 引入SQL映射文件
<mapper>: 引入单个的SQL映射文件
<package>: 批量引入SQL映射文件
要求: Mapper接口 与 SQL映射文件必须同名同位置 -->
<mappers>
<!-- <mapper resource="EmployeeMapper.xml" /> -->
<package name="com.atguigu.mybatis.dao"/>
</mappers>
4、编写逆向工程的xml文件(mbg.xml) <?xml version="1.0" encoding="UTF-8"?>
generatorConfiguration
<!-- context:
targetRuntime:
MyBatis3:生成带QBC风格的CRUD
MyBatis3Simple: 生成基本的CRUD -->
context id=“DB2Tables” targetRuntime=“MyBatis3Simple”
<!-- 数据库的连接 -->
<jdbcConnection driverClass="com.mysql.jdbc.Driver"
connectionURL="jdbc:mysql://localhost:3306/finance"
userId="root"
password="751022">
</jdbcConnection>
<!-- javaBean的生成策略 -->
<javaModelGenerator targetPackage="com.atguigu.mybatis.beans" targetProject=".\src">
<property name="enableSubPackages" value="true" />
<property name="trimStrings" value="true" />
</javaModelGenerator>
<!-- SQL映射文件的生成策略 -->
<sqlMapGenerator targetPackage="com.atguigu.mybatis.dao" targetProject=".\conf">
<property name="enableSubPackages" value="true" />
</sqlMapGenerator>
<!-- Mapper接口的生成策略 -->
<javaClientGenerator type="XMLMAPPER" targetPackage="com.atguigu.mybatis.dao" targetProject=".\src">
<property name="enableSubPackages" value="true" />
</javaClientGenerator>
<!-- 逆向分析的表 -->
<table tableName="nplm_borrower_info" domainObjectName="NplmBorrowerInfo"></table>
<table tableName="nplm_contract_attribute" domainObjectName="NplmConreactAttribute"></table>
<table tableName="nplm_loan_contract" domainObjectName="NplmLoanContract"></table>
<table tableName="nplm_overdue_contract" domainObjectName="NplmOverdueContract"></table>
<table tableName="nplm_repayment_detail" domainObjectName="NplmRepaymentDetail"></table>
<table tableName="nplm_repayment_plan" domainObjectName="NplmRepaymentPlan"></table>
<table tableName="nplm_repayment_record" domainObjectName="NplmRepaymentRecord"></table>
context
generatorConfiguration
5、创建Test测试
package com.###.mybatis.test;
import java.io.File;
import java.io.InputStream;
import java.util.ArrayList;
import java.util.List;
import org.apache.ibatis.io.Resources;
import org.apache.ibatis.session.SqlSession;
import org.apache.ibatis.session.SqlSessionFactory;
import org.apache.ibatis.session.SqlSessionFactoryBuilder;
import org.junit.Test;
import org.mybatis.generator.api.MyBatisGenerator;
import org.mybatis.generator.config.Configuration;
import org.mybatis.generator.config.xml.ConfigurationParser;
import org.mybatis.generator.internal.DefaultShellCallback;
public class TestMyBatis {
@Test
public void testMbg() throws Exception{
List<String> warnings = new ArrayList<String>();
boolean overwrite = true;
File configFile = new File("mbg.xml");
ConfigurationParser cp = new ConfigurationParser(warnings);
Configuration config = cp.parseConfiguration(configFile);
DefaultShellCallback callback = new DefaultShellCallback(overwrite);
MyBatisGenerator myBatisGenerator = new MyBatisGenerator(config, callback, warnings);
myBatisGenerator.generate(null);
}
public SqlSessionFactory getSqlSessionFactory() throws Exception {
String resource = "mybatis-config.xml";
InputStream inputStream =
Resources.getResourceAsStream(resource);
SqlSessionFactory sqlSessionFactory =
new SqlSessionFactoryBuilder().build(inputStream);
return sqlSessionFactory;
}
}