什么是逆向工程

MyBatis逆向工程可以方便的从数据库中将表自动映射到JAVA POJO类,并同时生成Mapper.xml和Mapper接口,方便实用。
MyBatis的一个主要的特点就是需要程序员自己编写sql,那么如果表太多的话,难免会很麻烦,所以mybatis官方提供了一个逆向工程,可以针对单表自动生成mybatis执行所需要的代码(包括mapper.xml、mapper.java、po…)。一般在开发中,常用的逆向工程方式是通过数据库的表生成代码。

jar包

需要使用逆向工程jar: mybatis-generator-core-1.3.2.jar
mybatis 的jar:mybatis-3.4.5.jar
数据库驱动jar:mysql-connector-java-5.1.7-bin.jar


案例

1)新建java project 为mybatisGenerator

使用逆向工程,我们最好是新建一个Java Project,而不要直接在项目工程中进行,以免自动生成的文件名冲突而造成覆盖。在新建的项目中生成代码,然后拷贝即可。

2)导入jar包

在项目下新建lib,把jar拷贝进去

build path:

3)新建一个GerenatorConfig.xml配置文件

新建配置文件,主要配置以下信息:

1、连接数据库,这是必须的,要不然怎么根据数据库的表生成代码呢?
2、指定要生成代码的位置,要生成的代码包括po类,mapper.xml和mapper.java
3、指定数据库中想要生成哪些表

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE generatorConfigurationPUBLIC "-//mybatis.org//DTD MyBatis Generator Configuration 1.0//EN""http://mybatis.org/dtd/mybatis-generator-config_1_0.dtd">
<generatorConfiguration><context id="MybatisGenerator" targetRuntime="MyBatis3"><commentGenerator><!-- 是否去除自动生成的注释,true是,false否 --><property name="supressAllComments" 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><!-- 生成的po实体类的存放位置 --><javaModelGenerator targetPackage="com.oak.po"targetProject=".\src"><!-- enableSubPackages:是否让schema作为包的后缀 --><property name="enableSubPackages" value="false" /><!-- 从数据库返回的值被清理前后的空格 --><property name="trimStrings" value="true" /></javaModelGenerator><!-- 生成的mapper映射文件(XML文件)的存放位置 --><sqlMapGenerator targetPackage="com.oak.mapper" targetProject=".\src"><!-- enableSubPackages:是否让schema作为包的后缀 --><property name="enableSubPackages" value="false" /></sqlMapGenerator><!-- 生成的mapper接口(JAVA文件)的存放位置 --><javaClientGenerator type="XMLMAPPER"targetPackage="com.oak.mapper" targetProject=".\src"><!-- enableSubPackages:是否让schema作为包的后缀 --><property name="enableSubPackages" value="false" /></javaClientGenerator><!-- 指定数据库表 --><table tableName="student" /><table tableName="grade" /><!-- 有些表的字段需要指定java类型<table schema="" tableName=""><columnOverride column="" javaType="" /></table> --></context>
</generatorConfiguration>

4)新建一个class为MyGenerator.java

此类主要是用来加载配置文件,执行生成代码:

public class MyGenerator {public void generate() throws Exception {List<String> warnings = new ArrayList<String>();boolean overwrite = true;File configFile = new File("GerenatorConfig.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 {MyGenerator myGenerator = new MyGenerator();myGenerator.generate();} catch (Exception e) {e.printStackTrace();}}
}

5)执行java类,查看结果

6)不要忘了刷新项目!!!

MyBatis逆向工程生成代码(附源码)相关推荐

  1. python12306源码_Python动刷新抢12306火车票的代码(附源码)

    Python动刷新抢12306火车票的代码(附源码) 用python另一个抢票神器,你get到了吗? 2017年时间飞逝,转眼间距离2018年春节还有不到1个月的时间,还在为抢不到火车票发愁吗?作为程 ...

  2. html直播动画,HTML5 直播疯狂点赞动画实现代码 附源码

    直播有一个很重要的互动: 为了烘托直播间的氛围,直播相对于普通视频或者文本内容,点赞通常有两个特殊需求: 点赞动作无限次,引导用户疯狂点赞 直播间的所有疯狂点赞,都需要在所有用户界面都 我们先来看效果 ...

  3. 疯狂html附源码,科技常识:HTML5 直播疯狂点赞动画实现代码 附源码

    今天小编跟大家讲解下有关HTML5 直播疯狂点赞动画实现代码 附源码 ,相信小伙伴们对这个话题应该有所关注吧,小编也收集到了有关HTML5 直播疯狂点赞动画实现代码 附源码 的相关资料,希望小伙伴们看 ...

  4. html5直播源码,HTML5 直播疯狂点赞动画实现代码 附源码

    直播有一个很重要的互动:点赞. 为了烘托直播间的氛围,直播相对于普通视频或者文本内容,点赞通常有两个特殊需求: 点赞动作无限次,引导用户疯狂点赞 直播间的所有疯狂点赞,都需要在所有用户界面都动画展现出 ...

  5. python抢购火车票源代码_Python动刷新抢12306火车票的代码(附源码)

    摘要:这篇Python开发技术栏目下的"Python动刷新抢12306火车票的代码(附源码)",介绍的技术点是"12306火车票.Python.12306.附源码.火车票 ...

  6. PHP密码生成管理源码,php密码生成类(附源码)

    本节内容: 好用的php 密码生成类. 访代码实现的功能: 1,可设定密码长度. 2,可设定要生成的密码个数,批量生成. 3,可以指定密码的规则,字母,数字,特殊字符等. 1,密码生成类文件 Gene ...

  7. 天天酷跑php源码_Java实现天天酷跑小游戏完整代码(附源码)

    首先,写一个需求文档: 一.项目名称:<天天酷跑>(RunDay) 二.功能介绍: 闯关类游戏,玩家登录后,选择进入游戏,通过键盘控制玩家的上下左右移动,来躲避 障碍物和吃金币,玩家躲避的 ...

  8. Node后端模板代码(附源码)

    前言 之前也写过简单的node服务器代码,但不算做事一个工程,这一次因为也需求,就写了这套后端模板. 从git上找的一些node模板,功能是可以实现,但工作流程理解起来有点困难,可能是小弟我水平有限, ...

  9. PyTorch使用快速梯度符号攻击(FGSM)实现对抗性样本生成(附源码和数据集MNIST手写数字)

    需要源码和数据集请点赞关注收藏后评论区留言或者私信~~~ 一.威胁模型 对抗性机器学习,意思是在训练的模型中添加细微的扰动最后会导致模型性能的巨大差异,接下来我们通过一个图像分类器上的示例来进行讲解, ...

  10. java逆向生成代码有哪些_利用mybatis逆向工程生成代码

    在做项目过程中,当面对很多表时,手动编写Mapper.xml.Mapper.java和pojo无疑是要人命,还容易出错,导致对数据库操作时各种异常.这就陷入了写bug,改bug的旋涡. 针对这一痛点, ...

最新文章

  1. TVM优化c++部署实践
  2. 目标检测的渐进域自适应,优于最新SOTA方法
  3. Java生成XML文件与XML文件的写入
  4. LeetCode03:无重复字符的最长子串
  5. 如何使用MiniProfiler(附最新版MiniProfiler使用心得)
  6. python setdefault函数_python 字典 setdefault()和get()方法比较详解
  7. java 读取webapp文件_在Java Webapp和Java Normal应用中读取公共外部属性文件
  8. C++导入导出动态库
  9. chrome 90的新功能(new feature in chrome 90)
  10. Tomcat中的Out Of Memory错误
  11. 通过了面试,却不会和hr聊薪水?
  12. 引用父类成员的关键字是java_[Java] super关键字:引用父类成员
  13. intellij 专业版 TomCat9
  14. JAVA贪吃蛇(简易版)
  15. linux 新唐 STM32,新唐M0系列stm32单片机哪个便宜?
  16. Unity单机手游逆向破解思路(仅供学习参考,禁止用于非法行为)
  17. 朱朱的2020年(上)
  18. stata回归分析与系数检验专题【计量经济系列(三)】
  19. Rhino学习教程——1.4
  20. 【愚公系列】2022年09月 微信小程序-WebGL立体图形的绘制

热门文章

  1. 根据不同条件查询_好用的大数据即席查询工具——秒级响应
  2. 僵尸进程与孤儿进程(精简易懂,直接要害)
  3. java indexof 参数_Java indexOf() 方法
  4. php匿名函数自调用,使用自调用函数和匿名函数吃饭
  5. java 从_java-从查询字符串中过滤参数(使用番石榴?...
  6. java jpa 教程 查询_Spring Boot JPA 使用教程
  7. Java的历史及发展
  8. .net读取Lotus Domino文件数据库
  9. Mac 实用工具bash-comletion介绍安装
  10. html中opacity的使用