Mybatis 可以通过一定的代码,自动生成包括mapper.xml、mapper.java、po等文件;

一、环境准备:

用到的JAR包如下:

文件只有两个:GenMain.java和generatorConfig.xml文件,都放在src目录下。

二、实现方法

1、新建一个JAVA项目,

GenMain.java(主文件)

 import java.io.File;
import java.io.IOException;
import java.sql.SQLException;
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 GenMain {
public static void main(String[] args) {
List<String> warnings = new ArrayList<String>();
boolean overwrite = true;
String genCfg = "generatorConfig.xml";
File configFile = new File(GenMain.class.getResource(genCfg).getFile());
ConfigurationParser cp = new ConfigurationParser(warnings);
Configuration config = null;
try {
config = cp.parseConfiguration(configFile);
} catch (IOException e) {
e.printStackTrace();
} catch (XMLParserException e) {
e.printStackTrace();
}
DefaultShellCallback callback = new DefaultShellCallback(overwrite);
MyBatisGenerator myBatisGenerator = null;
try {
myBatisGenerator = new MyBatisGenerator(config, callback, warnings);
} catch (InvalidConfigurationException e) {
e.printStackTrace();
}
try {
myBatisGenerator.generate(null);
} catch (SQLException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}

配置文件: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="true" />
</commentGenerator>
<!--数据库连接的信息:驱动类、连接地址、用户名、密码 -->
<jdbcConnection driverClass="com.mysql.jdbc.Driver"
connectionURL="jdbc:mysql://localhost:3306/mybatis"
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.itheima.mybatis.po"
targetProject=".\src">
<!-- enableSubPackages:是否让schema作为包的后缀 -->
<property name="enableSubPackages" value="false" />
<!-- 从数据库返回的值被清理前后的空格 -->
<property name="trimStrings" value="true" />
</javaModelGenerator>
<!-- targetProject:mapper映射文件生成的位置 -->
<sqlMapGenerator targetPackage="com.itheima.mybatis.mapper"
targetProject=".\src">
<!-- enableSubPackages:是否让schema作为包的后缀 -->
<property name="enableSubPackages" value="false" />
</sqlMapGenerator>
<!-- targetPackage:mapper接口生成的位置 -->
<javaClientGenerator type="XMLMAPPER"
targetPackage="com.itheima.mybatis.mapper"
targetProject=".\src">
<!-- enableSubPackages:是否让schema作为包的后缀 -->
<property name="enableSubPackages" value="false" />
</javaClientGenerator>
<!-- 指定数据库表 -->
<table schema="" tableName="user"></table>
<table schema="" tableName="orders"></table>
<table schema="" tableName="orderdetail"></table>
<table schema="" tableName="items"></table> <!-- 有些表的字段需要指定java类型
<table schema="" tableName="">
<columnOverride column="" javaType="" />
</table> -->
</context>
</generatorConfiguration>

数据库基本配置和生成文件的目录,都在上述文件中配置;

最新文章

  1. Java使用代理服务器
  2. php构造方法与析构方法
  3. Swift 语法
  4. 【poj3141】 Distant Galaxy
  5. sqoop与mysql之间中文乱码
  6. ios中webservice报文的拼接
  7. Blending(融合)
  8. C++中标准容器Vector,元素操作.insert()小结
  9. shape的属性
  10. [BZOJ 2243] [SDOI 2011] 染色 【树链剖分】
  11. mysql和mysqli的区别
  12. html系列教程--header head iframe img
  13. 首页导航点击A连接跳转并添加上背景色,
  14. Head First设计模式之迭代器模式
  15. junit测试延伸--方法的重复测试
  16. 【原创】自己动手实现JDK动态代理
  17. java界面--WePush-master 项目跑起来 -碰到的问题
  18. JMeter-性能测试监控(解决.sh文件的启动)
  19. C#、winform、wpf将类控件放进工具箱里
  20. Python变量和常量

热门文章

  1. windows SFC(System File Checker) 命令的使用
  2. 刷新神经网络新深度:ImageNet计算机视觉挑战赛微软中国研究员夺冠
  3. JavaScript里面向对象的继承:构造函数&quot;继承&quot;的六种方法
  4. Docker解析及轻量级PaaS平台演练(二)--Docker的一些简单命令
  5. Kafka查看偏移量报错:WARN WARNING: ConsumerOffsetChecker is deprecated and will be dropped in releases following 0.9.0. Use ConsumerGroupCommand instead.
  6. Nginx 报错413 Request Entity Too Large 上传文件过大
  7. How to simplify a PHP code with the help of the fa&#231;ade pattern?
  8. Tomcat:IOException while loading persisted sessions: java.io.EOFException 解决
  9. webpack入门学习总结
  10. Python——在Unicode和普通字符串之间转换