欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

GBM:Mybatis 逆向工程学习随笔

程序员文章站 2022-07-11 09:11:46
一、逆向工程的作用 简单来说,就是替我们生成Java代码。 之前使用Mybatis的Mapper代理方法开发,还需要自己创建实体类,而且属性还得和数据库中的字段对应。这着实是机械化的而且比较麻烦的事,而机械化的事情正是代码所擅长的,于是Mybatis官方就提供了MyBatis Generator , ......

一、逆向工程的作用

  简单来说,就是替我们生成java代码。

  之前使用mybatis的mapper代理方法开发,还需要自己创建实体类,而且属性还得和数据库中的字段对应。这着实是机械化的而且比较麻烦的事,而机械化的事情正是代码所擅长的,于是mybatis官方就提供了mybatis generator ,可以通过简单的配置替我们针对单表自动生成mapper接口,mapper.xml,以及实体类。

二、使用

  1. 导包

    就需要添加一个jar包

    GBM:Mybatis 逆向工程学习随笔

    当然,mybatis核心包以及数据库驱动包还是和之前使用mybatis的时候一样。

  2.创建配置文件

    名称、位置随意。

    GBM:Mybatis 逆向工程学习随笔

    配置文件里的内容在mybatis generator官网上可以直接复制。官网网址:http://www.mybatis.org/generator/running/runningwithjava.html

    进去之后点击xml configuration reference 把右侧的代码复制。

    GBM:Mybatis 逆向工程学习随笔

 

    这里我贴一份我自己的配置文件,我也是官网复制的,只是添加了一些注释。

  

GBM:Mybatis 逆向工程学习随笔
 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 
 8   <context id="db2tables" targetruntime="mybatis3">
 9       <commentgenerator>
10           <!-- 是否去除自动生成的注释 true:是;false:否 -->
11           <property name="suppressallcomments" value="true"/>
12       </commentgenerator>
13       <!-- 数据库连接的信息:驱动类,连接地址,用户名,密码 -->
14     <jdbcconnection driverclass="com.mysql.jdbc.driver"
15         connectionurl="jdbc:mysql://localhost:3306/xtkj"
16         userid="root"
17         password="root">
18     </jdbcconnection>
19 
20     <!-- 默认为false,把jdbc decimal 和 numeric 类型解析为integer,为true时把 把jdbc decimal 和
21      numeric 类型解析为java.math.bigdecimal-->
22     <javatyperesolver >
23       <property name="forcebigdecimals" value="false" />
24     </javatyperesolver>
25 
26     <!-- 生成po类的位置 -->
27     <javamodelgenerator targetpackage="com.xtkj.ssm.pojo" targetproject=".\src">
28         <!-- enablesubpackages:是否让schema作为包的后缀 -->
29       <property name="enablesubpackages" value="false" />
30       <!-- 从数据库返回的值清理前后的空格 -->
31       <property name="trimstrings" value="true" />
32     </javamodelgenerator>
33     <!--mapper映射文件 生成的位置-->
34     <sqlmapgenerator targetpackage="com.xtkj.ssm.mapper"  targetproject=".\src">
35         <!-- enablesubpackages:是否让schema作为包的后缀 -->
36       <property name="enablesubpackages" value="false" />
37     </sqlmapgenerator>
38     <!-- mapper接口生成的位置 -->
39     <javaclientgenerator type="xmlmapper" targetpackage="com.xtkj.ssm.mapper"  targetproject=".\src">
40     <!-- enablesubpackages:是否让schema作为包的后缀 -->
41       <property name="enablesubpackages" value="false" />
42     </javaclientgenerator>
43 
44     <!-- 指定数据库表 -->
45     <table tablename="tb_user"></table>
46 
47   </context>
48 </generatorconfiguration>
view code

    需要改动的就是数据库连接信息(我用的是mysql)、实体类和mepper映射文件生成的位置、以及对应的数据库中的数据表名

   3. 执行生成程序

    同样是可以在官网复制,放在main方法或测试方法中执行就可以了,只需要改动对应的配置文件名。这里注意路径要写对,我的就是config/generatorconfig.xml,如果直接放在了src目录下就写 src/generatorconfig.xml。

   GBM:Mybatis 逆向工程学习随笔

    到这里,逆向工程的初步使用就完成了,以下是我后的目录结构。执行完记得刷新一下。

    GBM:Mybatis 逆向工程学习随笔

 

      可以看到mapper包和pojo包都是自动生成的。比之前方便多了,我就指定了一张表,所以只有一个 mapper.java 和一个 mapper.xml,当然在配置文件里也可以指定多张表。这里值得一说的是相比之前自己写,逆向工程pojo下多了一个*example.java文件,这个东西是用来自定义条件查询的。具体的使用我会在我下一篇博客中详细介绍。