欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

mybatis_16逆向工程

程序员文章站 2023-10-31 19:08:22
简介 简单点说,就是通过数据库中的单表,自动生成java代码。 Mybatis官方提供了逆向工程 可以针对单表自动生成mybatis代码(mapper.java\mapper.xml\po类) 企业开发中,逆向工程是个很常用的工具。 下载逆向工程 https://github.com/mybatis ......

简介

简单点说,就是通过数据库中的单表,自动生成java代码

 

mybatis官方提供了逆向工程

可以针对单表自动生成mybatis代码(mapper.java\mapper.xml\po类)

 

企业开发中,逆向工程是个很常用的工具。

 

下载逆向工程

 

 

使用方法

1、  创建简单的java项目

2、  导入jar包,创建generator配置文件

    mysql-connector-java-5.1.7-bin.jar
    mybatis-generator-core-1.3.2.jar

 

3、  使用java类来执行逆向工程;

4、  把生成的代码拷贝到项目中。

5、  在正式项目中使用逆向工程生成的代码

 

第一步:创建generator配置文件

在classpath下,创建generator.xml配置文件:(文件内容可以从逆向工程的jar包中docs目录下的index.html中找到相关代码)

<?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="mysqltable" targetruntime="mybatis3">
        <!-- 1.数据连接参数 -->
        <jdbcconnection driverclass="com.mysql.jdbc.driver"
                        connectionurl="jdbc:mysql://localhost:3306/bishe"
                        userid="root"
                        password="123456">
        </jdbcconnection>

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

        <!-- 3.生成模型的位置 -->
        <javamodelgenerator targetpackage="com.ahd.domain" targetproject=".\src">
            <!-- enablesubpackages:是否让schema作为包的后缀 -->
            <property name="enablesubpackages" value="true" />
            <property name="trimstrings" value="true" />
        </javamodelgenerator>

        <!-- 4.targetproject:mapper映射文件生成的位置 -->
        <sqlmapgenerator targetpackage="com.ahd.mapper"  targetproject=".\src">
            <!-- enablesubpackages:是否让schema作为包的后缀 -->
            <property name="enablesubpackages" value="true" />
        </sqlmapgenerator>

        <!-- 5. targetpackage:mapper接口生成的位置 -->
        <javaclientgenerator type="xmlmapper" targetpackage="com.ahd.mapper"
                             targetproject=".\src">
            <property name="enablesubpackages" value="true" />
        </javaclientgenerator>

        <!-- 6.要生成的表 -->
        <table tablename="user"/>
        <table tablename="food"/>
        <table tablename="order"/>
    </context>
</generatorconfiguration>

 


第二步:使用java类来执行逆向工程
 

需要导入mysql的驱动包和mybatis的逆向工程包

第三步:把生成的代码拷贝到项目中 

如果正式项目中已经有po类所在的包了,那么就只需要拷贝po类到指定包下就可以。

如果正式项目中没有po包,那么就把逆向工程中整个po类的包拷贝过去。

 

mapper.xml和mapper.java的拷贝与po类一样。

 mybatis_16逆向工程

 

第四步:测试 

逆向工程提供了很多查询方法,可以不用写sql,这个根hibernate有点类似

 

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;

import java.io.file;
import java.util.arraylist;
import java.util.list;

public class main {

    public static void main(string[] args) throws exception{
        list<string> warnings = new arraylist<string>();
        boolean overwrite = true;
        file configfile = new file("src/generator.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);
    }
}

 

 


  

 

 

注意:generator.xml文件如果在src目录下,则

file configfile = new file("src/generator.xml");