当前位置: 移动技术网 > IT编程>开发语言>Java > myBatis逆向工程的使用

myBatis逆向工程的使用

2018年11月21日  | 移动技术网IT编程  | 我要评论

使用mybatis generator可以快速生成实体类、dao类和mapper文件。有两种方式,现在说的是比较灵活的方式。本文栗子使用的是idea,目录结构为maven项目的结构。

1.在pom.xml文件中加入mybatis generator需要的jar包

<!-- mybatis核心包 -->
<dependency>
  <groupid>org.mybatis</groupid>
  <artifactid>mybatis</artifactid>
  <version>3.3.0</version>
</dependency>
<!-- mybatis-generator-core 反向生成java代码-->
<dependency>
  <groupid>org.mybatis.generator</groupid>
  <artifactid>mybatis-generator-core</artifactid>
  <version>1.3.5</version>
</dependency>

2.写相关的配置文件,mbgconfiguration.xml和jdbc.properties;

mbgconfiguration.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">
<!-- 第一种mybatis逆向生成xml配置 -->
<generatorconfiguration>
    <properties resource="jdbc.properties" />
    <context id="sqlservertables" targetruntime="mybatis3">
        <!-- 生成的pojo,将implements serializable-->
        <plugin type="org.mybatis.generator.plugins.serializableplugin"></plugin>
        <commentgenerator>
            <!-- 是否去除自动生成的注释 true:是 : false:否 -->
            <property name="suppressallcomments" value="true" />
        </commentgenerator>

        <!-- 数据库链接url、用户名、密码 -->
        <jdbcconnection driverclass="${jdbc.driverclassname}"
                        connectionurl="${jdbc.url}"
                        userid="${jdbc.username}"
                        password="${jdbc.password}">
        </jdbcconnection>

        <!--
        默认false,把jdbc decimal 和 numeric 类型解析为 integer
            true,把jdbc decimal 和 numeric 类型解析为java.math.bigdecimal
        -->
        <javatyperesolver>
            <property name="forcebigdecimals" value="false" />
        </javatyperesolver>

        <!--
        生成model模型,对应的包路径,以及文件存放路径(targetproject),targetproject可以指定具体的路径,如./src/main/java,
        也可以使用“maven”来自动生成,这样生成的代码会在target/generatord-source目录下
        -->
        <!--<javamodelgenerator targetpackage="com.joey.mybaties.test.pojo" targetproject="maven">-->
        <javamodelgenerator targetpackage="com.niit.test.model" targetproject="src/main/java">
            <property name="enablesubpackages" value="true"/>
            <!-- 从数据库返回的值被清理前后的空格  -->
            <property name="trimstrings" value="true" />
        </javamodelgenerator>

        <!--对应的mapper.xml文件  -->
        <sqlmapgenerator targetpackage="com.niit.test.mapper" targetproject="src/main/java">
            <property name="enablesubpackages" value="true"/>
        </sqlmapgenerator>

        <!-- 对应的mapper接口类文件 -->
        <javaclientgenerator type="xmlmapper" targetpackage="com.niit.test.dao" targetproject="src/main/java">
            <property name="enablesubpackages" value="true"/>
        </javaclientgenerator>


        <!-- 列出要生成代码的所有表,这里配置的是不生成example文件 -->
        <table tablename="tb_user" domainobjectname="userinfo"
               enablecountbyexample="false" enableupdatebyexample="false" enabledeletebyexample="false"
               enableselectbyexample="false" selectbyexamplequeryid="false" >
            <property name="useactualcolumnnames" value="false"/>
        </table>
    </context>
</generatorconfiguration>

jdbc.properties文件如下:

#######################  db connection config  #######################
###----------------- db type -----------------
databasetype=mysql
###----------------- mysql5+ -----------------
jdbc.driverclassname=com.mysql.jdbc.driver
jdbc.url=jdbc:mysql://localhost:3306/tb_mybatis?useunicode=true&characterencoding=utf-8
jdbc.username=root
jdbc.password=12321

3.写genmain类文件;

package com.niit.test.main;

import java.io.file;
import java.io.ioexception;
import java.sql.sqlexception;
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.invalidconfigurationexception;
import org.mybatis.generator.exception.xmlparserexception;
import org.mybatis.generator.internal.defaultshellcallback;

/**
 * created by audrey on 2018/11/19 17:05
 */
public class genmain {
    public static void main(string[] args) {
        list<string> warnings = new arraylist<string>();
        boolean overwrite = true;
        string gencfg = "/mbgconfiguration.xml";
        file configfile = new file(genmain.class.getresource(gencfg).getfile());
        configurationparser cp = new configurationparser(warnings);
        configuration config = null;
        try {
            config = cp.parseconfiguration(configfile);
        } catch (ioexception e) {
            e.printstacktrace();
        } catch (xmlparserexception e) {
            e.printstacktrace();
        }
        defaultshellcallback callback = new defaultshellcallback(overwrite);
        mybatisgenerator mybatisgenerator = null;
        try {
            mybatisgenerator = new mybatisgenerator(config, callback, warnings);
        } catch (invalidconfigurationexception e) {
            e.printstacktrace();
        }
        try {
            mybatisgenerator.generate(null);
        } catch (sqlexception e) {
            e.printstacktrace();
        } catch (ioexception e) {
            e.printstacktrace();
        } catch (interruptedexception e) {
            e.printstacktrace();
        }
    }
}

4.运行genmain类文件,即可生成实体类、dao类和mapper文件。

每次修改数据库时,都可以把原来生成的文件删掉,重新运行genmain文件重新生成。

如对本文有疑问, 点击进行留言回复!!

相关文章:

验证码:
移动技术网