zoukankan      html  css  js  c++  java
  • mybatis。逆向工程

    逆向工程

    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>

    <!-- targetPackagemapper接口生成的位置 -->

    <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数据库

    需修改:

    1. 数据库名和密码
    2. targetProject:生成pojo类的位置
    3. targetProject:mapper映射文件生成的位置
    4. targetPackagemapper接口生成的位置
    5. 指定生成的数据库表

    每个表对应生成一个实体类,一个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.方法(参数);

    注意:

    1. 逆向工程生成的代码只能做单表查询
    2. 不能在生成的代码上进行扩展,因为如果数据库变更,需要重新使用逆向工程生成代码,原来编写的代码就被覆盖了。
    3. 一张表会生成4个文件
  • 相关阅读:
    WPS表格:统计有效性(即:设为下拉选择框) 及 统计总数
    windows11桌面开始菜单移到左边
    批量将 大量文件的文件名 更为 提前准备好的文件名(一行一个)
    用微信电脑版视频号进行直播(可播放本地视频、窗口画面)
    华为电脑管家、华为手机助手官方下载地址(手机助手app显示空白,可通过重装pc版助手解决)
    《新三国》1080P(89集全)下载
    idea 使用常见问题汇总
    npm切换源
    springboot 与 springcloud 版本匹配
    Nginx学习笔记
  • 原文地址:https://www.cnblogs.com/hhthtt/p/10891544.html
Copyright © 2011-2022 走看看