1.什么是mybatis逆向工程
在使用mybatis时需要程序员自己编写sql语句,针对单表的sql语句量是很大的,mybatis官方提供了一种根据数据库表生成mybatis执行代码的工具,这个工具就是一个逆向工程。
逆向工程:针对数据库单表—->生成代码(mapper.xml、mapper.java、pojo。。)
mybatis-generator-core-1.3.2.jar—逆向工程运行所需要的jar核心 包
2.配置逆向工程的配置文件
配置文件generatorconfig.xml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
|
<?xml version= "1.0" encoding= "utf-8" ?> <!doctype generatorconfiguration public "-//mybatis.org//dtd mybatis generator configuration 1.0//en" "http://mybatis.org/dtd/mybatis-generator-config_1_0.dtd" > <generatorconfiguration> <context id= "testtables" targetruntime= "mybatis3" > <commentgenerator> <!-- 是否去除自动生成的注释 true :是 : false :否 --> <property name= "suppressallcomments" value= "true" /> </commentgenerator> <!--数据库连接的信息:驱动类、连接地址、用户名、密码 --> <jdbcconnection driverclass= "com.mysql.jdbc.driver" connectionurl= "jdbc:mysql://localhost:3306/mybatis" userid= "root" password= "123" > </jdbcconnection> <!-- <jdbcconnection driverclass= "oracle.jdbc.oracledriver" connectionurl= "jdbc:oracle:thin:@127.0.0.1:1521:yycg" userid= "yycg" password= "yycg" > </jdbcconnection> --> <!-- 默认 false ,把jdbc decimal 和 numeric 类型解析为 integer,为 true 时把jdbc decimal 和 numeric 类型解析为java.math.bigdecimal --> <javatyperesolver> <property name= "forcebigdecimals" value= "false" /> </javatyperesolver> <!-- targetproject:生成po类的位置 --> <javamodelgenerator targetpackage= "cn.zm.mybatis.po" targetproject= ".\src" > <!-- enablesubpackages:是否让schema作为包的后缀 --> <property name= "enablesubpackages" value= "false" /> <!-- 从数据库返回的值被清理前后的空格 --> <property name= "trimstrings" value= "true" /> </javamodelgenerator> <!-- targetproject:mapper映射文件生成的位置 --> <sqlmapgenerator targetpackage= "cn.zm.mybatis.mapper" targetproject= ".\src" > <!-- enablesubpackages:是否让schema作为包的后缀 --> <property name= "enablesubpackages" value= "false" /> </sqlmapgenerator> <!-- targetpackage:mapper接口生成的位置 --> <javaclientgenerator type= "xmlmapper" targetpackage= "cn.zm.mybatis.mapper" targetproject= ".\src" > <!-- enablesubpackages:是否让schema作为包的后缀 --> <property name= "enablesubpackages" value= "false" /> </javaclientgenerator> <!-- 指定数据库表 --> <table tablename= "items" ></table> <!-- <table tablename= "orders" ></table> <table tablename= "orderdetail" ></table> <table tablename= "user" ></table>--> <!-- <table schema= "" tablename= "sys_user" ></table> <table schema= "" tablename= "sys_role" ></table> <table schema= "" tablename= "sys_permission" ></table> <table schema= "" tablename= "sys_user_role" ></table> <table schema= "" tablename= "sys_role_permission" ></table> --> <!-- 有些表的字段需要指定java类型 <table schema= "" tablename= "" > <columnoverride column= "" javatype= "" /> </table> --> </context> </generatorconfiguration> |
3.执行逆向工程生成代码
执行java类方法:
生成的代码如下:
4.将生成的代码拷贝到业务系统工程中测试
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
|
public class itemsmappertest { private applicationcontext applicationcontext; private itemsmapper itemsmapper; @before public void setup() throws exception { applicationcontext = new classpathxmlapplicationcontext( "classpath:applicationcontext.xml" ); itemsmapper = (itemsmapper) applicationcontext.getbean( "itemsmapper" ); } //根本主键删除 @test public void deletebyprimarykey() { itemsmapper.deletebyprimarykey( 4 ); } @test public void insert() { } @test public void selectbyexample() { itemsexample itemsexample = new itemsexample(); itemsexample.criteria criteria = itemsexample.createcriteria(); //使用criteria自定义查询条件 criteria.andnameequalto( "水杯" ); criteria.andidequalto( 1 ); list<items> list = itemsmapper.selectbyexample(itemsexample); system.out.println(list); } @test public void selectbyprimarykey() { items items = itemsmapper.selectbyprimarykey( 1 ); system.out.println(items); } @test public void updatebyprimarykey() { } } |
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持服务器之家。
原文链接:http://blog.csdn.net/happy_meng/article/details/79058351