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

    一、什么是MyBatis逆向工程

    MyBatis Generator官方http://mybatis.github.io/generator/index.html
    MyBatisGeneratorWithMaven http://mybatis.github.io/generator/running/runningWithMaven.html

    简单的解释就是通过数据库中的表,自动生成java代码。
    一般情况下利用Mabatis框架进行Web应用开发的过程中,需要根据数据库表编写对应的Pojo类和Mapper映射文件,而编写的基础代码大同小异。因此,MyBatis官方提供了一简洁的逆向工程的工具,简化这一过程,让我们能更好的使用Mybatis框架。

    二、下载逆向工程

    https://github.com/mybatis/generator/releases/tag/mybatis-generator-1.3.2
    目录结构如下:

    mybatis-ni

    三、使用方法

    1. 配置genneratorConfig.xml的数据库连接信息
    2. 配置generatorConfig,xml中pojo类,mapper类和mapper.xml存放的位置
    3. 创建两个包放置mapper和pojo类,注意要和配置文件中的一致:
      <sqlMapGenerator targetPackage="com.shui.learn.mapper"
      <javaModelGenerator targetPackage="com.shui.learn.po"
    4. 运行GeneratorSqlmap,即可生成相应的mapper
    5. 把生成的文件拷贝到自己的工程

    详细配置文件:

    <?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/onlineleaning" userId="root"
                 password="123">
             </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.shui.learn.po"
                 targetProject=".src">
                 <!-- enableSubPackages:是否让schema作为包的后缀 -->
                 <property name="enableSubPackages" value="false" />
                 <!-- 从数据库返回的值被清理前后的空格 -->
                 <property name="trimStrings" value="true" />
             </javaModelGenerator>
           <!-- targetProject:mapper映射文件生成的位置 -->
             <sqlMapGenerator targetPackage="com.shui.learn.mapper"
    
                 targetProject=".src">
                 <!-- enableSubPackages:是否让schema作为包的后缀 -->
                 <property name="enableSubPackages" value="false" />
             </sqlMapGenerator>
             <!-- targetPackage:mapper接口生成的位置 -->
             <javaClientGenerator type="XMLMAPPER"
                 targetPackage="com.shui.learn.mapper"
    
                 targetProject=".src">
                 <!-- enableSubPackages:是否让schema作为包的后缀 -->
                 <property name="enableSubPackages" value="false" />
             </javaClientGenerator>
             <!-- 指定数据库表 -->
             <table schema="" tableName="admin"></table>
             <table schema="" tableName="category"></table>
             <table schema="" tableName="class"></table>
             <table schema="" tableName="college"></table>
             <table schema="" tableName="comment"></table>
             <table schema="" tableName="course"></table>
             <table schema="" tableName="course_catelog"></table>
             <table schema="" tableName="reply"></table>
             <table schema="" tableName="student"></table>
             <table schema="" tableName="student_course"></table>
             <table schema="" tableName="sys_permission"></table>
             <table schema="" tableName="sys_role"></table>
             <table schema="" tableName="sys_role_permission"></table>
             <table schema="" tableName="sys_user"></table>
             <table schema="" tableName="sys_user_role"></table>
             <table schema="" tableName="teacher"></table>
             <table schema="" tableName="teacher_student"></table>
             <!-- 有些表的字段需要指定java类型
             <table schema="" tableName="">
                 <columnOverride column="" javaType="" />
             </table> -->
       </context>
    </generatorConfiguration>

    GeneratorSqlmap

    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();
           }
       }
    }
  • 相关阅读:
    [Luogu1126] 机器人搬重物
    [POJ1830] 开关问题
    [bzoj3139] 比赛
    [POJ3349] Snowflake Snow Snowflakes
    The Tour
    [POJ3740] Easy Finding
    [vijos1453] 曼哈顿距离
    [POJ1632] Vase collection
    Codewars笔记
    Appium知识积累
  • 原文地址:https://www.cnblogs.com/shuiyj/p/13185264.html
Copyright © 2011-2022 走看看