mysql8+mybatis 使用逆向工程(eclipse和idea)

在eclipse中需要导入的包:

mybatis-generator-core-1.3.7.jar(其他版本的也可以)
mysql-connector-java-8.0.16.jar(其他版本的也可以)
需要一个配置文件(config.xml)和一个类(test);

目录结构:
在这里插入图片描述

config.xml 放在与src同级,同时写个test包

config.xml配置文件如下(不需要建额外的包,只需要个test类运行main函数)

<?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>
    <!-- 数据库驱动包位置(配置jdbc) -->
    <classPathEntry location="E:/eclpseworkplace/search/WebContent/WEB-INF/lib/mysql-connector-java-8.0.16.jar" />

    <context id="sqlGenerate" targetRuntime="MyBatis3">
        <!-- 是否去除自动生成的注释 true:是 : false:-->
        <commentGenerator>
            <property name="suppressAllComments" value="true" />
        </commentGenerator>

        <!-- 数据库链接URL、用户名、密码 -->
        <jdbcConnection driverClass="com.mysql.cj.jdbc.Driver" 
        connectionURL="jdbc:mysql://localhost:3306/example?characterEncoding=utf8&amp;useSSL=false&amp;serverTimezone=UTC" 
            userId="root" password="123456">
        </jdbcConnection>

         <!-- 默认false,把JDBC DECIMAL 和 NUMERIC 类型解析为 Integer;true时把JDBC DECIMAL和NUMERIC类型解析为java.math.BigDecimal -->
        <javaTypeResolver>
            <property name="forceBigDecimals" value="false" />
        </javaTypeResolver>

        <!-- 生成Pojo包名和位置(会自动生成utils包) -->
        <javaModelGenerator targetPackage="utils"
            targetProject="./src/">
            <!-- enableSubPackages:是否让schema作为包的后缀 -->
            <property name="enableSubPackages" value="true" />
            <!-- 清理前后的空格 -->
            <property name="trimStrings" value="true" />
        </javaModelGenerator>

        <!-- 生成Mapper映射XML文件位置(会自动生成mapper包)-->
        <sqlMapGenerator targetPackage="mapper"
            targetProject=".\src">
            <property name="enableSubPackages" value="true" />
        </sqlMapGenerator>

       <!-- 生成Mapper接口文件位置(会自动生成mapperXML包) -->
        <javaClientGenerator type="XMLMAPPER"
            targetPackage="mapperXML" targetProject=".\src">
            <property name="enableSubPackages" value="true" />
        </javaClientGenerator>
       <!-- 生成表名,对应的类名 -->
       <table tableName="company" domainObjectName="Company"></table>
       <table tableName="ada" domainObjectName="Ada"></table>
       <table tableName="add" domainObjectName="Add"></table>
    </context>
</generatorConfiguration>

再在test包里建个测试类(代码如下):

package Test;

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.InvalidConfigurationException;
import org.mybatis.generator.exception.XMLParserException;
import org.mybatis.generator.internal.DefaultShellCallback;

public class Test {

	public static void main(String[] args) throws IOException, XMLParserException, InvalidConfigurationException, Throwable, InterruptedException {
		 List<String> warnings = new ArrayList<String>();
		    boolean overwrite = true;
		    //指向逆向工程配置文件
		    File configFile = new File("config.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);
		
		
	}

}

运行后刷新一下项目就出来了;
目录结构如下:
在这里插入图片描述
不仅把数据的表名对应相应的类,还有对应的example(辅助类)
如下(通过id查找):

//获取session
			SqlSession session = MybatisUtil.getcurrentSession();
//获取加载对应的mapper
			CompanyMapper mapper = session.getMapper(CompanyMapper.class);
//辅助类的创建
			CompanyExample company=new CompanyExample();
//不检查重复值
			company.setDistinct(false);
//id排序
			company.setOrderByClause("id");
//辅助类的内置对象(用于增加条件)
			Criteria createCriteria = company.createCriteria();
//使id匹配id=11111111
			createCriteria.andIdEqualTo(11111111);
//list接受返回结果
			list<Company> companyf = mapper.selectByExample(company);

通过id查找的一般都是单条数据,所以用对象来装:

		Company companyf = (Company)mapper.selectByExample(company).get(0);

使用idea,就极其简单:首先下载一个插件

在这里插入图片描述
在resource下新建个文件(generatorConfig.xml):
在这里插入图片描述
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>
    <!--添加数据库的连接jar包的位置,在项目的左边最下的external libraries中找到复制全路径-->
    <classPathEntry location="C:\Users\mcfeng\.m2\repository\mysql\mysql-connector-java\8.0.16\mysql-connector-java-8.0.16.jar"/>

    <context id="testTables" targetRuntime="MyBatis3">
        <commentGenerator>
            <!-- 是否去除自动生成的注释 true:是 : false:否 -->
            <property name="suppressAllComments" value="true" />
        </commentGenerator>

        <!--数据库连接的信息:驱动类、连接地址、用户名、密码 -->
        <jdbcConnection driverClass="com.mysql.cj.jdbc.Driver"
                        connectionURL="jdbc:mysql://localhost:3306/user?characterEncoding=UTF-8&amp;autoReconnect=true&amp;serverTimezone=GMT%2B8&amp;useSSL=false"
                        userId="root"
                        password="123456">
        </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.mcfeng.utils"
                            targetProject=".\src\main\java">
            <!-- enableSubPackages:是否让schema作为包的后缀 -->
            <property name="enableSubPackages" value="false" />
            <!-- 从数据库返回的值被清理前后的空格 -->
            <property name="trimStrings" value="true" />
        </javaModelGenerator>

        <!-- targetProject:mapper映射文件生成的位置 -->
        <sqlMapGenerator targetPackage="mapper"
                         targetProject=".\src\main\resources">
            <!-- enableSubPackages:是否让schema作为包的后缀 -->
            <property name="enableSubPackages" value="false" />
        </sqlMapGenerator>

        <!-- targetPackage:mapper接口生成的位置 -->
        <javaClientGenerator type="XMLMAPPER"
                             targetPackage="com.mcfeng.mapper"
                             targetProject=".\src\main\java">
            <!-- enableSubPackages:是否让schema作为包的后缀 -->
            <property name="enableSubPackages" value="false" />
        </javaClientGenerator>

        <!-- 指定在数据库中已经存在的表名 -->
        <!-- 去除辅助类 -->
        <table schema="User" tableName="User" enableCountByExample="false"
               enableUpdateByExample="false" enableDeleteByExample="false"
               enableSelectByExample="false" selectByExampleQueryId="false"></table>
    </context>
</generatorConfiguration>

在pom.xml加入插件:

<plugins>
           <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>
        </plugins>

接下来在run中找到参数配置,进入:
在这里插入图片描述
配置页面如下:
在这里插入图片描述
如果没有找maven选项,就点击左上角的加号找到maven。
三步配完后就可以直接运行了。
在这里插入图片描述
运行就可以生成对应的文件。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值