在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&useSSL=false&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&autoReconnect=true&serverTimezone=GMT%2B8&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。
三步配完后就可以直接运行了。
运行就可以生成对应的文件。