码迷,mamicode.com
首页 > 其他好文 > 详细

十 mybatis逆向工程

时间:2016-11-05 22:48:28      阅读:249      评论:0      收藏:0      [点我收藏+]

标签:xdg   手机   sip   i2c   abi   blog   dip   lsh   sky   

1       逆向工程

 

1.1     什么是逆向工程

 

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

 

企业实际开发中,常用的逆向工程方式:

由于数据库的表生成java代码。

 

1.2     下载逆向工程

 技术分享

1.3     使用方法(会用)

1.3.1     运行逆向工程

 技术分享

建议使用java程序方式,不依赖开发工具。

1.3.2     生成代码配置文件

  1 <?xml version="1.0" encoding="UTF-8"?>
  2 
  3 <!DOCTYPE generatorConfiguration
  4 
  5   PUBLIC "-//mybatis.org//DTD MyBatis Generator Configuration 1.0//EN"
  6 
  7   "http://mybatis.org/dtd/mybatis-generator-config_1_0.dtd">
  8 
  9  
 10 
 11 <generatorConfiguration>
 12 
 13    <context id="testTables" targetRuntime="MyBatis3">
 14 
 15       <commentGenerator>
 16 
 17          <!-- 是否去除自动生成的注释 true:是 : false:否 -->
 18 
 19          <property name="suppressAllComments" value="true" />
 20 
 21       </commentGenerator>
 22 
 23       <!--数据库连接的信息:驱动类、连接地址、用户名、密码 -->
 24 
 25       <jdbcConnection driverClass="com.mysql.jdbc.Driver"
 26 
 27          connectionURL="jdbc:mysql://localhost:3306/mybatis" userId="root"
 28 
 29          password="root">
 30 
 31       </jdbcConnection>
 32 
 33       <!-- <jdbcConnection driverClass="oracle.jdbc.OracleDriver"
 34 
 35          connectionURL="jdbc:oracle:thin:@127.0.0.1:1521:yycg"
 36 
 37          userId="yycg"
 38 
 39          password="yycg">
 40 
 41       </jdbcConnection> -->
 42 
 43  
 44 
 45       <!-- 默认false,把JDBC DECIMAL 和 NUMERIC 类型解析为 Integer,为 true时把JDBC DECIMAL 和
 46 
 47          NUMERIC 类型解析为java.math.BigDecimal -->
 48 
 49       <javaTypeResolver>
 50 
 51          <property name="forceBigDecimals" value="false" />
 52 
 53       </javaTypeResolver>
 54 
 55  
 56 
 57       <!-- targetProject:生成PO类的位置 -->
 58 
 59       <javaModelGenerator targetPackage="cn.itcast.ssm.po"
 60 
 61          targetProject=".\src">
 62 
 63          <!-- enableSubPackages:是否让schema作为包的后缀 -->
 64 
 65          <property name="enableSubPackages" value="false" />
 66 
 67          <!-- 从数据库返回的值被清理前后的空格 -->
 68 
 69          <property name="trimStrings" value="true" />
 70 
 71       </javaModelGenerator>
 72 
 73         <!-- targetProject:mapper映射文件生成的位置 -->
 74 
 75       <sqlMapGenerator targetPackage="cn.itcast.ssm.mapper"
 76 
 77          targetProject=".\src">
 78 
 79          <!-- enableSubPackages:是否让schema作为包的后缀 -->
 80 
 81          <property name="enableSubPackages" value="false" />
 82 
 83       </sqlMapGenerator>
 84 
 85       <!-- targetPackage:mapper接口生成的位置 -->
 86 
 87       <javaClientGenerator type="XMLMAPPER"
 88 
 89          targetPackage="cn.itcast.ssm.mapper"
 90 
 91          targetProject=".\src">
 92 
 93          <!-- enableSubPackages:是否让schema作为包的后缀 -->
 94 
 95          <property name="enableSubPackages" value="false" />
 96 
 97       </javaClientGenerator>
 98 
 99       <!-- 指定数据库表 -->
100 
101       <table tableName="items"></table>
102 
103       <table tableName="orders"></table>
104 
105       <table tableName="orderdetail"></table>
106 
107       <table tableName="user"></table>
108 
109  
110 
111      
112 
113    </context>
114 
115 </generatorConfiguration>

 

1.3.3     执行生成程序

 技术分享

生成后的代码:

 

 技术分享

 

1.3.4     使用生成的代码

需要将生成工程中所生成的代码拷贝到自己的工程中。

 

测试ItemsMapper中的方法

 1 //自定义条件查询
 2     @Test
 3     public void testSelectByExample() {
 4         ItemsExample itemsExample = new ItemsExample();
 5         //通过criteria构造查询条件
 6         ItemsExample.Criteria criteria = itemsExample.createCriteria();
 7         criteria.andNameEqualTo("笔记本3");
 8         //可能返回多条记录
 9         List<Items> list = itemsMapper.selectByExample(itemsExample);
10         
11         System.out.println(list);
12         
13     }
14 
15     //根据主键查询
16     @Test
17     public void testSelectByPrimaryKey() {
18         Items items = itemsMapper.selectByPrimaryKey(1);
19         System.out.println(items);
20     }
21 
22 
23 //插入
24     @Test
25     public void testInsert() {
26         //构造 items对象
27         Items items = new Items();
28         items.setName("手机");
29         items.setPrice(999f);
30         itemsMapper.insert(items);
31     }
32 
33 //更新数据
34     @Test
35     public void testUpdateByPrimaryKey() {
36         
37         //对所有字段进行更新,需要先查询出来再更新
38         Items items = itemsMapper.selectByPrimaryKey(1);
39         
40         items.setName("水杯");
41         
42         itemsMapper.updateByPrimaryKey(items);
43         //如果传入字段不空为才更新,在批量更新中使用此方法,不需要先查询再更新
44         //itemsMapper.updateByPrimaryKeySelective(record);
45         
46     }

项目源码:

链接:http://pan.baidu.com/s/1jIHLSHK 密码:irp6

 

十 mybatis逆向工程

标签:xdg   手机   sip   i2c   abi   blog   dip   lsh   sky   

原文地址:http://www.cnblogs.com/kingxiaozi/p/6034093.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!