通过Mybatis逆向工程,可以从数据库中的表自动生成pojo、mapper映射文件和mapper接口

此处暂存怎么使用逆向工程,原理以后再探讨

工程结构

要修改的地方:generatorConfig.xml配置文件中数据库信息(用户名、密码等)、指定数据库表  这两个地方需要修改

代码:

1.GeneratorSqlmap.java

  1. import java.io.File;
  2. import java.io.IOException;
  3. import java.util.ArrayList;
  4. import java.util.List;
  5.  
  6. import org.mybatis.generator.api.MyBatisGenerator;
  7. import org.mybatis.generator.config.Configuration;
  8. import org.mybatis.generator.config.xml.ConfigurationParser;
  9. import org.mybatis.generator.exception.XMLParserException;
  10. import org.mybatis.generator.internal.DefaultShellCallback;
  11.  
  12. public class GeneratorSqlmap {
  13.  
  14. public void generator() throws Exception{
  15.  
  16. List<String> warnings = new ArrayList<String>();
  17. boolean overwrite = true;
  18. //指定 逆向工程配置文件
  19. File configFile = new File("generatorConfig.xml");
  20. ConfigurationParser cp = new ConfigurationParser(warnings);
  21. Configuration config = cp.parseConfiguration(configFile);
  22. DefaultShellCallback callback = new DefaultShellCallback(overwrite);
  23. MyBatisGenerator myBatisGenerator = new MyBatisGenerator(config,
  24. callback, warnings);
  25. myBatisGenerator.generate(null);
  26.  
  27. }
  28. public static void main(String[] args) throws Exception {
  29. try {
  30. GeneratorSqlmap generatorSqlmap = new GeneratorSqlmap();
  31. generatorSqlmap.generator();
  32. } catch (Exception e) {
  33. e.printStackTrace();
  34. }
  35.  
  36. }
  37.  
  38. }

2.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/taotao" userId="root"
  15. password="123">
  16. </jdbcConnection>
  17. <!-- 默认false,把JDBC DECIMAL 和 NUMERIC 类型解析为 Integer,为 true时把JDBC DECIMAL 和
  18. NUMERIC 类型解析为java.math.BigDecimal -->
  19. <javaTypeResolver>
  20. <property name="forceBigDecimals" value="false" />
  21. </javaTypeResolver>
  22.  
  23. <!-- targetProject:生成PO类的位置 -->
  24. <javaModelGenerator targetPackage="com.taotao.pojo"
  25. targetProject=".\src">
  26. <!-- enableSubPackages:是否让schema作为包的后缀 -->
  27. <property name="enableSubPackages" value="false" />
  28. <!-- 从数据库返回的值被清理前后的空格 -->
  29. <property name="trimStrings" value="true" />
  30. </javaModelGenerator>
  31. <!-- targetProject:mapper映射文件生成的位置 -->
  32. <sqlMapGenerator targetPackage="com.taotao.mapper"
  33. targetProject=".\src">
  34. <!-- enableSubPackages:是否让schema作为包的后缀 -->
  35. <property name="enableSubPackages" value="false" />
  36. </sqlMapGenerator>
  37. <!-- targetPackage:mapper接口生成的位置 -->
  38. <javaClientGenerator type="XMLMAPPER"
  39. targetPackage="com.taotao.mapper"
  40. targetProject=".\src">
  41. <!-- enableSubPackages:是否让schema作为包的后缀 -->
  42. <property name="enableSubPackages" value="false" />
  43. </javaClientGenerator>
  44. <!-- 指定数据库表 -->
  45. <table schema="" tableName="tb_content"></table>
  46. <table schema="" tableName="tb_content_category"></table>
  47. <table schema="" tableName="tb_item"></table>
  48. <table schema="" tableName="tb_item_cat"></table>
  49. <table schema="" tableName="tb_item_desc"></table>
  50. <table schema="" tableName="tb_item_param"></table>
  51. <table schema="" tableName="tb_item_param_item"></table>
  52. <table schema="" tableName="tb_order"></table>
  53. <table schema="" tableName="tb_order_item"></table>
  54. <table schema="" tableName="tb_order_shipping"></table>
  55. <table schema="" tableName="tb_user"></table>
  56.  
  57. </context>
  58. </generatorConfiguration>

3.log4j.properties

  1. log4j.rootLogger=DEBUG, Console
  2. #Console
  3. log4j.appender.Console=org.apache.log4j.ConsoleAppender
  4. log4j.appender.Console.layout=org.apache.log4j.PatternLayout
  5. log4j.appender.Console.layout.ConversionPattern=%d [%t] %-5p [%c] - %m%n
  6. log4j.logger.java.sql.ResultSet=INFO
  7. log4j.logger.org.apache=INFO
  8. log4j.logger.java.sql.Connection=DEBUG
  9. log4j.logger.java.sql.Statement=DEBUG
  10. log4j.logger.java.sql.PreparedStatement=DEBUG

Mybatis_笔记_01_逆向工程的更多相关文章

  1. PL/SQL学习笔记_01_基础

    PL/SQL语句可以在Oracle客户端的 SQL窗口或者 command  窗口中运行 在SQL窗口中运行步骤同 SQL语句 在command  窗口中运行的步骤如下: 1)File—new com ...

  2. Linux_笔记_01_设置静态IP与 SecureCRT连接Linux

    步骤一至三,即可设置好静态IP 步骤四至九,使SecureCRT连接Linux 步骤一:编辑ifcfg-eth0 文件 1.打开ifcfg-eth0 文件 使用命令:vi /etc/sysconfig ...

  3. PL/SQL学习笔记_01_基础:变量、流程控制

    PL/SQL语句可以在Oracle客户端的 SQL窗口或者 command  窗口中运行 在SQL窗口中运行步骤同 SQL语句 在command  窗口中运行的步骤如下: 1)File—new com ...

  4. C#学习笔记_01_基础内容

    01_基础内容 进(位)制 十进制:逢10进1,数字由0-9组成: 二进制:逢2进1,数字由0-1组成: 八进制:逢8进1,数字由0-7组成: 十六进制:逢16进1,数字由0-9和a-f组成: 进制转 ...

  5. UML学习笔记_01_基本概念

    1.什么是UML Unified Modeling Language (UML)又称统一建模语言或标准建模语言,是始于1997年一个OMG标准,它是一个支持模型化和软件系统开发的图形化语言,为软件开发 ...

  6. Java之逆向工程(1) - 反编译、修补和逆向工程技术 读书笔记

    透视JAVA——反编译.修补和逆向工程技术 读书笔记 1.  Java source is not compiled to binary machine code like C/C++ source ...

  7. mybatis学习笔记(五):mybatis 逆向工程

    mybatis学习笔记(五):mybatis 逆向工程 在日常开发中,如果数据库中存在多张表,自己手动创建 多个pojo 类和编写 SQL 语法配置文件,未免太过繁琐,mybatis 也提供了一键式生 ...

  8. 学习笔记01(mybatis逆向工程)

    今天来看看一个常用的小功能,就是mybatis的逆向工程.(数据库是mysql) 什么是逆向工程呢?看名字就知道反方向的一个什么工程! 其实啊,如果是平常我们自己学习实践一些小项目的时候,应该是先瞎写 ...

  9. 【黑客免杀攻防】读书笔记8 - 软件逆向工程基础2(if-else,三目运算符)

    0x1 if-else分支 if-else分支4种状态 1.1 以常量为判断条件的简单if-else分支 C源代码: 单层if-else判断,常量为判断条件 int _tmain(int argc, ...

随机推荐

  1. CP936 转换成 UTF-8

    最近写了一个抓取脚本,抓取的大部分内容正常,但少部分乱码 检测字符编码,得出的结果是CP936 mb_detect_encoding($str, 'GBK, gb2312, GB18030, ISO- ...

  2. Centos date 设置自定义时间

    [1]手动修改 (1)设置日期 # date -s 20190315 (2)设置时间 # date -s 15:23:34 (3)设置日期和时间 # date -s "20190315 15 ...

  3. What I learned from competing against a ConvNet on ImageNet

    http://karpathy.github.io/2014/09/02/what-i-learned-from-competing-against-a-convnet-on-imagenet/

  4. DNN自适应

  5. lua调试小技巧

    lua中,如果碰到某个属性值改变了,但是修改的地方又特别多,调试就特别麻烦了,有个小技巧,直接贴代码 local m = {    __index = function( t, k )         ...

  6. 教你管理SQL数据库系列(1-4)

    原文 教你管理 SQL Server 数据库(1)数据库的结构  http://bbs.51cto.com/thread-1084951-1.html教你管理 SQL Server 数据库(2)系统数 ...

  7. python基础21 ------python基础之socket编程

    一.C/S架构和B/S架构的简介 略 二.osi七层模型 略 三.socket层 1.如图所示: socket层是存在于应用层和传输层直接抽象出来的一层. 2.socket层是什么? Socket是应 ...

  8. Django模型系统——ORM中跨表、聚合、分组、F、Q

    核心知识点: 1.明白表之间的关系 2.根据关联字段确定正反向,选择一种方式 在Django的ORM种,查询既可以通过查询的方向分为正向查询和反向查询,也可以通过不同的对象分为对象查询和Queryse ...

  9. LeetCode:位运算实现加法

    LeetCode:位运算实现加法 写在前面 位运算符 实现加法的思路 两个加数,比如5(101)和6(110),如何不用加法就能得出两者之和呢? 我们知道二进制计算中,如果使用异或将会产生无进位的两者 ...

  10. php输入输出

    php是服务器脚本语言,js是客户端脚本语言 php用表单接收数据,echo 输出数据,$定义变量. <?php echo $_POST["sub"]; // POST后是表 ...