Maven项目myBatis的逆向生成

1,逆向生成(从数据库表---->代码)的作用:

可以自动生成关于数据库中的表的实体类pojo
可以自动生成实体类的持久层Dao
可以自动生成持久层的映射文件Mapper

2,配置Maven项目的pom.xml,在pom.xml增加以下插件,以及依赖:

<!--插件-->
			 <plugin>
                <groupId>org.mybatis.generator</groupId>
                <artifactId>mybatis-generator-maven-plugin</artifactId>
                <version>1.3.2</version>
                <configuration>
                    <verbose>true</verbose>
                    <overwrite>true</overwrite>
                </configuration>
            </plugin>

<!--        依赖-->
<!--        mybatis-->
		<dependency>
            <groupId>org.mybatis</groupId>
            <artifactId>mybatis</artifactId>
            <version>3.4.2</version>
        </dependency>
<!--        数据库-->
 		<dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <version>5.1.44</version>
        </dependency>
<!--        逆向工程-->
        <dependency>
            <groupId>org.mybatis.generator</groupId>
            <artifactId>mybatis-generator-core</artifactId>
            <version>1.3.2</version>
        </dependency>

3,配置好Maven插件,下面需要配置插件需要配置文件,在maven项目下的config文件下放generator.xml配置文件。
在这里插入图片描述
4,generator.xml代码如下:

配置文件需要修改的内容:
1,数据库驱动、地址、用户名、密码(不同版本的tomcat配置jdbc有区别)
2,POJO类、mapper接口、mapper映射文件生成的位置
3,指定数据表
<?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>

    <!-- 数据库驱动包位置 -->
    <!-- <classPathEntry location="D:\software\lib\mysql-connector-java-5.1.21.jar"
        /> -->
    <!-- <classPathEntry location="C:\oracle\product\10.2.0\db_1\jdbc\lib\ojdbc14.jar"
        /> -->
    <context id="DB2Tables" targetRuntime="MyBatis3">
        <!-- 序列化model -->
        <plugin type="org.mybatis.generator.plugins.SerializablePlugin"/>
        <commentGenerator>
            <property name="suppressAllComments" value="true"/>
        </commentGenerator>
        <!-- 数据库链接URL、用户名、密码 -->
         <jdbcConnection driverClass="com.mysql.jdbc.Driver"
                        connectionURL="jdbc:mysql://localhost:3306/school?characterEncoding=utf8&amp;useSSL=false&amp;serverTimezone=UTC&amp;rewriteBatchedStatements=true" userId="root"
                        password="root">
        </jdbcConnection>
<!--        <jdbcConnection driverClass="com.mysql.cj.jdbc.Driver"-->
<!--                        connectionURL="jdbc:mysql://localhost:3306/sudent?characterEncoding=utf8&amp;useSSL=false&amp;serverTimezone=UTC&amp;rewriteBatchedStatements=true" userId="root"-->
<!--                        password="root">-->
<!--        </jdbcConnection>-->

        <!-- <jdbcConnection driverClass="oracle.jdbc.driver.OracleDriver" connectionURL="jdbc:oracle:thin:@localhost:1521:orcl"
            userId="scott" password="tiger"> </jdbcConnection> -->
        <javaTypeResolver>
            <property name="forceBigDecimals" value="false"/>
        </javaTypeResolver>
        <!-- 生成模型的包名和位置 main.com.qianfeng.pojo-->
        <javaModelGenerator targetPackage="com.qianfeng.pojo"
                            targetProject=".\src">
            <property name="enableSubPackages" value="false"/>
            <property name="trimStrings" value="true"/>
        </javaModelGenerator>
        <!-- 生成的映射文件包名和位置 -->
        <sqlMapGenerator targetPackage="com.qianfeng.dao.mapper"
                         targetProject=".\src">
            <property name="enableSubPackages" value="true"/>
        </sqlMapGenerator>
        <!-- 生成DAO的包名和位置 -->
        <javaClientGenerator type="XMLMAPPER"
                             targetPackage="com.qianfeng.dao" targetProject=".\src">
            <property name="enableSubPackages" value="true"/>
        </javaClientGenerator>
        <!-- 要生成那些表(更改tableName和domainObjectName就可以) -->
        <table tableName="student" schema=""/>
        <table tableName="subject" schema=""/>
        <table tableName="score" schema=""/>

    </context>
</generatorConfiguration>

5,GeneratorText.java
配置完成之后运行GeneratorText.java中的main方法就会生成对应数据表的代码,生成后记得右键项目名刷新。如果需要再次生成,一定要记得先把原来生成的删除。

import org.junit.Test;
import org.mybatis.generator.api.MyBatisGenerator;
import org.mybatis.generator.api.ShellCallback;
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;

import java.io.File;
import java.io.IOException;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.List;

public class GeneratorText {

    @Test
    public static void main(String[] args) throws IOException, XMLParserException, InvalidConfigurationException, SQLException, InterruptedException, SQLException {
       //配置文件的路径
        File f = new File("config/generator.xml");

        List<String> warnings = new ArrayList<String>();
        ConfigurationParser parser = new ConfigurationParser(warnings);

        Configuration configuration = parser.parseConfiguration(f);

        boolean overwrite = true;
        ShellCallback shellCallback = new DefaultShellCallback(overwrite);
        MyBatisGenerator generator = new MyBatisGenerator(configuration, shellCallback, warnings);

        generator.generate(null);

        System.out.println("OK!");
    }
}

6,生成的代码,
如果有N张表,就会生成2N个POJO,N个mapper.java以及N个mapper.xml,也许你会问,为什么会生成2N个POJO呢?那是因为他除了常规的POJO之外还生成了用于设置条件的xxxExample。
在这里插入图片描述
以学生表为例,内含基本的增删改查方法,是程序员更专注于逻辑业务的处理在这里插入图片描述
7,不使用Maven的java项目,参考此图。
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值