今天来看看一个常用的小功能,就是mybatis的逆向工程。(数据库是mysql)

  什么是逆向工程呢?看名字就知道反方向的一个什么工程!

  其实啊,如果是平常我们自己学习实践一些小项目的时候,应该是先瞎写几张数据库表,然后再打开IDEA或者Eclipse去搭建环境,通过一些和数据库交互的框架去和数据库交互,就比如用mybatis,我们就要写一个mapper和很多的pojo,还有mybatis.xml配置文件,如果mapper中定义的方法比较多,那么我们光写一个mybatis.xml就要花很长时间,更不要说要处理一些其他可能由于失误产生的bug。

  这个时候,就是mybatis逆向工程出马的时候了,可以根据你的数据库表直接产生mapper,pojo,以及每一个mapper对应的xml。

  注意一点:逆向工程对于所有的mybatis来说代码都是通用的。

  首先,就是新建一个最基本的java项目,然后复制两个jar包;

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

 

  一个配置文件generatorContext.xml,这里主要配置了几个东西:连接数据库的基本信息,指定生成pojo的包名,指定生成mapper的包名,指定数据库表的表名;所以我们自己要根据自己的实际情况就是根据前面所说的四个东西自己修改一下就ok了,其他的不用动。

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

相关文章: