使用mybatis反向自动生成实体类和mapper映射文件和接口文件

实践是知识的母亲,知识是生活的明灯。这篇文章主要讲述使用mybatis反向自动生成实体类和mapper映射文件和接口文件相关的知识,希望能为你提供帮助。
问题描述:
最近在做web的东西,想要从数据库中生成实体类,然后操作数据库,然后做一些增删改查的工作,
发现可以直接使用mybatis直接生成javabean,还有可以直接生成mapper的映射文件。具体操作如下:
新建一个maven工程:
(1)在pom文件中加入需要依赖的jar包(如下3个依赖)
< dependency>
< groupId> org.mybatis.generator< /groupId>
< artifactId> mybatis-generator-core< /artifactId>
< version> 1.3.5< /version>
< /dependency>
< dependency>
< groupId> mysql< /groupId>
< artifactId> mysql-connector-java< /artifactId>
< version> 5.1.38< /version>
< /dependency>
< !-- https://mvnrepository.com/artifact/org.apache.ibatis/ibatis-core -->
< dependency>
< groupId> org.apache.ibatis< /groupId>
< artifactId> ibatis-core< /artifactId>
< version> 3.0< /version>
< /dependency>
(2)在根目录下创建一个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>
< context id="testTables" targetRuntime="MyBatis3">
< commentGenerator>
< !-- 是否去除自动生成的注释 true:是 : false:否 -->
< property name="suppressAllComments" value="https://www.songbingjia.com/android/true" />
< /commentGenerator>
< !--数据库连接的信息:驱动类、连接地址、用户名、密码mysql数据库连接-->
< jdbcConnection driverClass="com.mysql.jdbc.Driver"
connectionURL="jdbc:mysql://zhb-pc:3306/rrv" userId="report"
password="report">
< /jdbcConnection>
< !--oracle数据库连接-->
< !-- < jdbcConnection driverClass="oracle.jdbc.OracleDriver"connectionURL="jdbc:oracle:thin:@127.0.0.1:1521:yycg"
userId="yycg"
password="yycg">
< /jdbcConnection> -->
< !-- 默认false,把JDBC DECIMAL 和 NUMERIC 类型解析为 Integer,为 true时把JDBC DECIMAL 和
NUMERIC 类型解析为java.math.BigDecimal -->
< javaTypeResolver>
< property name="forceBigDecimals" value="https://www.songbingjia.com/android/false" />
< /javaTypeResolver>
【使用mybatis反向自动生成实体类和mapper映射文件和接口文件】< !-- targetProject:生成PO类的位置 -->
< javaModelGenerator targetPackage="com.report.pojo"
targetProject="src/main/java">
< !-- enableSubPackages:是否让schema作为包的后缀 -->
< property name="enableSubPackages" value="https://www.songbingjia.com/android/false" />
< !-- 从数据库返回的值被清理前后的空格 -->
< property name="trimStrings" value="https://www.songbingjia.com/android/true" />
< /javaModelGenerator>
< !-- targetProject:mapper映射文件生成的位置 -->
< sqlMapGenerator targetPackage="com.itheima.mapper"
targetProject="src/main/resources">
< !-- enableSubPackages:是否让schema作为包的后缀 -->
< property name="enableSubPackages" value="https://www.songbingjia.com/android/false" />
< /sqlMapGenerator>
< !-- targetPackage:mapper接口生成的位置 -->
< javaClientGenerator type="XMLMAPPER"
targetPackage="com.report.dao"
targetProject="src/main/java">
< !-- enableSubPackages:是否让schema作为包的后缀 -->
< property name="enableSubPackages" value="https://www.songbingjia.com/android/false" />
< /javaClientGenerator>
< !-- 指定数据库表 -->
< !-- < table tableName="items"> < /table> -->
< table tableName="rule_conf"> < /table>
< table tableName="rule_run_result"> < /table>
< !-- < table tableName="user"> < /table> -->
< !-- < table schema="" tableName="sys_user"> < /table>
< table schema="" tableName="sys_role"> < /table>
< table schema="" tableName="sys_permission"> < /table>
< table schema="" tableName="sys_user_role"> < /table>
< table schema="" tableName="sys_role_permission"> < /table> -->
< !-- 有些表的字段需要指定java类型
< table schema="" tableName="">
< columnOverride column="" javaType="" />
< /table> -->
< /context>
< /generatorConfiguration>
(3)编写一个主类然后运行即可生成。
import java.io.File;
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.internal.DefaultShellCallback;
public class Generate {
public void generator() throws Exception{
List< String> warnings = new ArrayList< String> ();
boolean overwrite = true;
File configFile = new File("generatorConfig.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);
}
public static void main(String[] args) throws Exception {
try {
Generate generatorSqlmap = new Generate();
generatorSqlmap.generator();
} catch (Exception e) {
e.printStackTrace();
}
}
}
总结:在xml文件中定义的包不需要我们手动的创建,需要在执行的时候会直接生成。



























































































    推荐阅读