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

一、环境准备:

用到的JAR包如下:

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

二、实现方法

1、新建一个JAVA项目,

GenMain.java(主文件)

 1 import java.io.File;
 2 import java.io.IOException;
 3 import java.sql.SQLException;
 4 import java.util.ArrayList;
 5 import java.util.List;
 6
 7 import org.mybatis.generator.api.MyBatisGenerator;
 8 import org.mybatis.generator.config.Configuration;
 9 import org.mybatis.generator.config.xml.ConfigurationParser;
10 import org.mybatis.generator.exception.InvalidConfigurationException;
11 import org.mybatis.generator.exception.XMLParserException;
12 import org.mybatis.generator.internal.DefaultShellCallback;
13
14 public class GenMain {
15     public static void main(String[] args) {
16         List<String> warnings = new ArrayList<String>();
17         boolean overwrite = true;
18         String genCfg = "generatorConfig.xml";
19         File configFile = new File(GenMain.class.getResource(genCfg).getFile());
20         ConfigurationParser cp = new ConfigurationParser(warnings);
21         Configuration config = null;
22         try {
23             config = cp.parseConfiguration(configFile);
24         } catch (IOException e) {
25             e.printStackTrace();
26         } catch (XMLParserException e) {
27             e.printStackTrace();
28         }
29         DefaultShellCallback callback = new DefaultShellCallback(overwrite);
30         MyBatisGenerator myBatisGenerator = null;
31         try {
32             myBatisGenerator = new MyBatisGenerator(config, callback, warnings);
33         } catch (InvalidConfigurationException e) {
34             e.printStackTrace();
35         }
36         try {
37             myBatisGenerator.generate(null);
38         } catch (SQLException e) {
39             e.printStackTrace();
40         } catch (IOException e) {
41             e.printStackTrace();
42         } catch (InterruptedException e) {
43             e.printStackTrace();
44         }
45     }
46 }  

配置文件:generatorConfig.xml

 1 <?xml version="1.0" encoding="UTF-8"?>
 2 <!DOCTYPE generatorConfiguration
 3   PUBLIC "-//mybatis.org//DTD MyBatis Generator Configuration 1.0//EN"
 4   "http://mybatis.org/dtd/mybatis-generator-config_1_0.dtd">
 5
 6 <generatorConfiguration>
 7     <context id="testTables" targetRuntime="MyBatis3">
 8         <commentGenerator>
 9             <!-- 是否去除自动生成的注释 true:是 : false:否 -->
10             <property name="suppressAllComments" value="true" />
11         </commentGenerator>
12         <!--数据库连接的信息:驱动类、连接地址、用户名、密码 -->
13         <jdbcConnection driverClass="com.mysql.jdbc.Driver"
14             connectionURL="jdbc:mysql://localhost:3306/mybatis"
15             userId="root"
16             password="123456">
17         </jdbcConnection>
18
19         <!-- 默认false,把JDBC DECIMAL 和 NUMERIC 类型解析为 Integer,为 true时把JDBC DECIMAL 和
20             NUMERIC 类型解析为java.math.BigDecimal -->
21         <javaTypeResolver>
22             <property name="forceBigDecimals" value="false" />
23         </javaTypeResolver>
24
25         <!-- targetProject:生成PO类的位置 -->
26         <javaModelGenerator targetPackage="com.itheima.mybatis.po"
27             targetProject=".\src">
28             <!-- enableSubPackages:是否让schema作为包的后缀 -->
29             <property name="enableSubPackages" value="false" />
30             <!-- 从数据库返回的值被清理前后的空格 -->
31             <property name="trimStrings" value="true" />
32         </javaModelGenerator>
33         <!-- targetProject:mapper映射文件生成的位置 -->
34         <sqlMapGenerator targetPackage="com.itheima.mybatis.mapper"
35             targetProject=".\src">
36             <!-- enableSubPackages:是否让schema作为包的后缀 -->
37             <property name="enableSubPackages" value="false" />
38         </sqlMapGenerator>
39         <!-- targetPackage:mapper接口生成的位置 -->
40         <javaClientGenerator type="XMLMAPPER"
41             targetPackage="com.itheima.mybatis.mapper"
42             targetProject=".\src">
43             <!-- enableSubPackages:是否让schema作为包的后缀 -->
44             <property name="enableSubPackages" value="false" />
45         </javaClientGenerator>
46         <!-- 指定数据库表 -->
47         <table schema="" tableName="user"></table>
48         <table schema="" tableName="orders"></table>
49         <table schema="" tableName="orderdetail"></table>
50         <table schema="" tableName="items"></table>
51
52         <!-- 有些表的字段需要指定java类型
53          <table schema="" tableName="">
54             <columnOverride column="" javaType="" />
55         </table> -->
56     </context>
57 </generatorConfiguration>

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

转载于:https://www.cnblogs.com/lrzy/p/8422796.html

Mybatis 逆向工程 自动生成代码相关推荐

  1. (转)MyBatis框架的学习(七)——MyBatis逆向工程自动生成代码

    http://blog.csdn.net/yerenyuan_pku/article/details/71909325 什么是逆向工程 MyBatis的一个主要的特点就是需要程序员自己编写sql,那么 ...

  2. Mybatis逆向工程自动生成代码文件

    一般来说都会新建另外一个项目,用于生成代码文件,然后拷贝到需要的项目中.新建maven项目用于生成代码文件,项目目录如下所示: pom.xml内容如下: <project xmlns=" ...

  3. MyBatis逆向工程自动生成代码(附数据库表结构)

    一.逆向工程介绍 逆向工程是一个专门为 MyBatis 框架使用者设计的代码生成器,可以根据数据库中的表字段名,自动生成 POJO 类,mapper 接口与 SQL 映射文件.支持基本的增删改查功能, ...

  4. 【MyBatis框架】mybatis逆向工程自动生成代码

    逆向工程 1.什么是逆向工程 mybaits需要程序员自己编写sql语句,mybatis官方提供逆向工程 可以针对单表自动生成mybatis执行所需要的代码(mapper.java,mapper.xm ...

  5. SSM+Maven整合时在Eclipse中使用Mybatis逆向工程自动生成代码

    场景 MybatisGenerator 官方文档 http://www.mybatis.org/generator/configreference/xmlconfig.html 实现 项目搭建好完整的 ...

  6. SpringBoot如何自动生成实体类和Dao层以及映射文件(mybatis generator 自动生成代码)

    一.首先添加自动生成代码插件 <!-- mybatis generator 自动生成代码插件 生成时解除注释 --><plugin><groupId>org.myb ...

  7. SpringBoot入门篇--整合mybatis+generator自动生成代码+druid连接池+PageHelper分页插件

    我们这一一篇博客讲的是如何整合Springboot和Mybatis框架,然后使用generator自动生成mapper,pojo等文件.然后再使用阿里巴巴提供的开源连接池druid,这个连接池的好处我 ...

  8. Mybatis中自动生成代码(利用mybatis-generator-core-1.3.2)

    Mybatis中自动生成代码(利用mybatis-generator-core-1.3.2) 引言: 在使用mybatis开发的过程中,通常我们会给数据库的每张表编写对应的po.mapper.mapp ...

  9. 使用Mybatis Generator自动生成代码

    MyBatis Generator(MBG)是MyBatis MyBatis 和iBATIS的代码生成器. 它将为所有版本的MyBatis以及版本2.2.0之后的iBATIS版本生成代码. 它将内省数 ...

最新文章

  1. 开源引领的万亿级市场,该如何打造出成功的商业模式?
  2. Elixir: 多太(Polymorphism)
  3. [ -~] 所有的可打印字符
  4. LeetCode 916. 单词子集(计数)
  5. 组合赋权法之matlab
  6. java数据源的几种配置
  7. android db加载后无法读取任何内容_android性能优化(二)之卡顿优化
  8. php自带count 函数,深入理解PHP 数组之count 函数
  9. 腾讯云主机安全防护(云镜)/usr/local/qcloud/YunJing/YDEyes/YDService 卸载
  10. Sigmod/Softmax变换
  11. 资深技术专家张荣华:架构的方法论
  12. android view
  13. java 微博 开源_微博开源框架Motan初体验
  14. Notepad++下载markdown viewer plugin
  15. ftp服务器文件无法删除,ftp服务器文件删除
  16. 爬虫 爬取豆瓣高分电影信息
  17. 电磁波传播matlab程序,电磁波在不同介质中传播的 MATLAB 仿真教学实践论文
  18. C++获取文件夹内子文件夹名
  19. #PRBS# PRBS7高速串行总线的常用测试码型
  20. 聚宝匯wap站测试工具版本号

热门文章

  1. linux mail命令查看邮件/mail控制台
  2. VUE 项目作为服务启动
  3. 支持树莓派的路由器系统_用树莓派打造无线路由器
  4. python最好的教程_喜大普奔~可能是最好的Python教程
  5. 查看Tomcat版本及多版本切换
  6. php+mysql案例含源码_【专注】Zabbix源码安装教程—步骤详解(1)安装前准备
  7. torchvision0.2.2_Xcode 10.2
  8. elasticsearch 7.8.0 kibana 7.8.0安装部署
  9. 老师吴恩达,身家又增20亿!
  10. Python 中的面向对象没有意义