逆向工程
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>
- <context id="testTables" targetRuntime="MyBatis3">
- <commentGenerator>
- <!-- 是否去除自动生成的注释 true: 是 :false: 否 -->
- <property name="suppressAllComments" value="true" />
- </commentGenerator>
- <!-- 数据库连接的信息: 驱动类, 连接地址, 用户名, 密码 -->
- <jdbcConnection driverClass="com.mysql.jdbc.Driver" connectionURL="jdbc:mysql://localhost:3306/mybatis"
- userId="root" password="123456">
- </jdbcConnection>
- <!-- <jdbcConnection driverClass="oracle.jdbc.OracleDriver" connectionURL="jdbc:oracle:thin:@127.0.0.1:1521:yycg"
- userId="yycg" password="yycg"> </jdbcConnection> -->
- <!-- 默认 false, 把 JDBC DECIMAL 和 NUMERIC 类型解析为 Integer, 为 true 时把 JDBC
- DECIMAL 和 NUMERIC 类型解析为 java.math.BigDecimal -->
- <javaTypeResolver>
- <property name="forceBigDecimals" value="false" />
- </javaTypeResolver>
- <!-- targetProject: 生成 PO 类的位置 -->
- <javaModelGenerator targetPackage="com.oracle.pojo" targetProject=".\src">
- <!-- enableSubPackages: 是否让 schema 作为包的后缀 -->
- <property name="enableSubPackages" value="false" />
- <!-- 从数据库返回的值被清理前后的空格 -->
- <property name="trimStrings" value="true" />
- </javaModelGenerator>
- <!-- targetProject:mapper 映射文件生成的位置 -->
- <sqlMapGenerator targetPackage="com.oracle.mapper" targetProject=".\src">
- <!-- enableSubPackages: 是否让 schema 作为包的后缀 -->
- <property name="enableSubPackages" value="false" />
- </sqlMapGenerator>
- <!-- targetPackage:mapper 接口生成的位置 -->
- <javaClientGenerator type="XMLMAPPER" targetPackage="com.oracle.mapper"
- targetProject=".\src">
- <!-- enableSubPackages: 是否让 schema 作为包的后缀 -->
- <property name="enableSubPackages" value="false" />
- </javaClientGenerator>
- <!-- 指定数据库表 -->
- <table schema="" tableName="user">
- </table>
- <table schema="" tableName="order">
- </table>
- </context>
- </generatorConfiguration>
注释部分为连接 oracle 数据库
需修改:
数据库名和密码
targetProject: 生成 pojo 类的位置
targetProject:mapper 映射文件生成的位置
targetPackage:mapper 接口生成的位置
指定生成的数据库表
每个表对应生成一个实体类, 一个 mapper 接口, 一个 mapper.xml
执行 main 方法 生成代码
(default package) 包下 GeneratorSqlmap.java 方法:
右键 Run as - java A.... 执行方法
- import java.io.File;
- import java.io.IOException;
- import java.util.ArrayList;
- import java.util.List;
- import org.mybatis.generator.API.MyBatisGenerator;
- import org.mybatis.generator.config.Configuration;
- import org.mybatis.generator.config.xml.ConfigurationParser;
- import org.mybatis.generator.exception.XMLParserException;
- import org.mybatis.generator.internal.DefaultShellCallback;
- public class GeneratorSqlmap {
- public void generator() throws Exception{
- List<String> warnings = new ArrayList<String>();
- boolean overwrite = true;
- // 指定逆向工程配置文件
- File configFile = new File("generatorConfig.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 static void main(String[] args) throws Exception {
- try {
- GeneratorSqlmap generatorSqlmap = new GeneratorSqlmap();
- generatorSqlmap.generator();
- } catch (Exception e) {
- e.printStackTrace();
- }
- }
- }
方法调用 (不变):
- // 加载配置文件
- String path="SqlMapConfig.xml";
- InputStream in= Resources.getResourceAsStream(path);
- // 获取 SqlSessionFactory
- SqlSessionFactory fac=new SqlSessionFactoryBuilder().build(in);
- // 获取 SqlSession 对象
- SqlSession sqlsession=fac.openSession();
- // 获取动态代理对象 (实现类对象)
接口名 usermapper=sqlsession.getMapper(接口名. class);
返回值 = usermapper. 方法 (参数);
注意:
逆向工程生成的代码只能做单表查询
不能在生成的代码上进行扩展, 因为如果数据库变更, 需要重新使用逆向工程生成代码, 原来编写的代码就被覆盖了.
一张表会生成 4 个文件
来源: http://www.bubuko.com/infodetail-3065300.html