mybatis教程(一):简单实现

1、简单实现

1.1、创建一个java项目。目录及需要的 jar 包如下

1.2准备数据库 (mysql)数据

 1  /*
 2  Navicat MySQL Data Transfer
 3  
 4  Source Server         : 本地
 5  Source Server Version : 50712
 6  Source Host           : localhost:3306
 7  Source Database       : mybatis
 8  
 9  Target Server Type    : MYSQL
10  Target Server Version : 50712
11  File Encoding         : 65001
12  
13  Date: 2018-01-31 11:37:10
14  */
15  
16  CREATE DATABASE mybatis;
17  USE mybatis;
18  
19  DROP TABLE IF EXISTS `t_user`;
20  CREATE TABLE `t_user` (
21    `id` int(11) NOT NULL AUTO_INCREMENT,
22    `username` varchar(30) NOT NULL COMMENT '用户名称',
23    `birthday` date DEFAULT NULL COMMENT '生日',
24    `sex` char(2) DEFAULT NULL COMMENT '性别',
25    `address` varchar(256) DEFAULT NULL COMMENT '地址',
26    PRIMARY KEY (`id`)
27  ) ENGINE=InnoDB AUTO_INCREMENT=6 DEFAULT CHARSET=utf8;
28  
29  INSERT INTO `t_user` VALUES ('1', '小A', '2015-06-27', '2', '北京');
30  INSERT INTO `t_user` VALUES ('2', '小黑', '2018-01-31', '2', '上海');
31  INSERT INTO `t_user` VALUES ('3', '小C', '2015-06-27', '1', '北京');
32  INSERT INTO `t_user` VALUES ('4', '小D', '2015-06-27', '2', '北京');
33  INSERT INTO `t_user` VALUES ('5', '小红', '2018-01-31', '1', '上海');
SQL.sql

1.3测试代码

 1 package com.mybatis.entity;
 2 
 3 import java.util.Date;
 4 
 5 public class User {
 6     
 7     private Integer id;
 8     // 姓名
 9     private String username;
10     // 性别
11     private String sex;
12     // 地址
13     private String address;
14     // 生日
15     private Date birthday;
16     
17     
18     public Integer getId() {
19         return id;
20     }
21     public void setId(Integer id) {
22         this.id = id;
23     }
24     public String getUsername() {
25         return username;
26     }
27     public void setUsername(String username) {
28         this.username = username;
29     }
30     public String getSex() {
31         return sex;
32     }
33     public void setSex(String sex) {
34         this.sex = sex;
35     }
36     public String getAddress() {
37         return address;
38     }
39     public void setAddress(String address) {
40         this.address = address;
41     }
42     public Date getBirthday() {
43         return birthday;
44     }
45     public void setBirthday(Date birthday) {
46         this.birthday = birthday;
47     }
48 
49 }
User.java
  1 package com.mybatis.service;
  2 
  3 import java.io.IOException;
  4 import java.io.InputStream;
  5 import java.util.Date;
  6 import java.util.List;
  7 
  8 import org.apache.ibatis.io.Resources;
  9 import org.apache.ibatis.session.SqlSession;
 10 import org.apache.ibatis.session.SqlSessionFactory;
 11 import org.apache.ibatis.session.SqlSessionFactoryBuilder;
 12 import org.junit.Test;
 13 
 14 import com.mybatis.entity.User;
 15 
 16 public class MybatisService {
 17     
 18      // 根据Id查询用户信息,得到一条记录结果
 19     @Test
 20     public void findUserByIdTest() {
 21         // mybatis的配置文件
 22         String resource = "SqlMapConfig.xml";
 23         InputStream inputStream = null;
 24         SqlSession sqlSession = null;
 25         try {
 26             inputStream = Resources.getResourceAsStream(resource);
 27             // 1.创建会话工场,传入mybatis的配置文件信息
 28             SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder()
 29                     .build(inputStream);
 30 
 31             // 2.通过工厂得到SqlSession
 32             sqlSession = sqlSessionFactory.openSession();
 33 
 34             // 3.通过sqlSession操作数据库
 35             // 第一个参数:映射文件中的statement的Id,等于namespace + "." + statement的id;
 36             // 第二个参数:指定和映射文件中所匹配的parameterType类型的参数;
 37             // sqlSession.selectOne结果是与映射文件所匹配的resultType类型的对象;
 38             // selectOne:查询一条结果
 39             User user = sqlSession.selectOne("test.findUserById", 1);
 40             System.out.println(user.toString());
 41 
 42         } catch (IOException e) {
 43             e.printStackTrace();
 44         } finally {
 45             if (sqlSession != null) {
 46                 sqlSession.close();
 47             }
 48             if (inputStream != null) {
 49                 try {
 50                     inputStream.close();
 51                 } catch (IOException e) {
 52                     e.printStackTrace();
 53                 }
 54             }
 55         }
 56     }
 57 
 58     // 根据姓名模糊查询用户信息,得到一条或多条记录结果
 59     @Test
 60     public void findUserByNameTest() {
 61         // mybatis的配置文件
 62         String resource = "SqlMapConfig.xml";
 63         InputStream inputStream = null;
 64         SqlSession sqlSession = null;
 65         try {
 66             inputStream = Resources.getResourceAsStream(resource);
 67             // 1.创建会话工场,传入mybatis的配置文件信息
 68             SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder()
 69                     .build(inputStream);
 70 
 71             // 2.通过工厂得到SqlSession
 72             sqlSession = sqlSessionFactory.openSession();
 73 
 74             // 3.通过sqlSession操作数据库
 75             // 第一个参数:映射文件中的statement的Id,等于namespace + "." + statement的id;
 76             // 第二个参数:指定和映射文件中所匹配的parameterType类型的参数;
 77             // sqlSession.selectOne结果是与映射文件所匹配的resultType类型的对象;
 78             // list中的user和resultType类型一致
 79             List<User> list = sqlSession.selectList("test.findUserByName", "小");
 80             System.out.println(list);
 81 
 82         } catch (IOException e) {
 83             e.printStackTrace();
 84         } finally {
 85             if (sqlSession != null) {
 86                 sqlSession.close();
 87             }
 88             if (inputStream != null) {
 89                 try {
 90                     inputStream.close();
 91                 } catch (IOException e) {
 92                     e.printStackTrace();
 93                 }
 94             }
 95         }
 96     }
 97 
 98     // 添加用户
 99     @Test
100     public void insertUserTest() {
101         // mybatis的配置文件
102         String resource = "SqlMapConfig.xml";
103         InputStream inputStream = null;
104         SqlSession sqlSession = null;
105         try {
106             inputStream = Resources.getResourceAsStream(resource);
107             // 1.创建会话工场,传入mybatis的配置文件信息
108             SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder()
109                     .build(inputStream);
110             // 2.通过工厂得到SqlSession
111             sqlSession = sqlSessionFactory.openSession();
112             //插入用户的对象
113             User user = new User();
114             user.setUsername("小红");
115             user.setBirthday(new Date());
116             user.setSex("1");
117             user.setAddress("上海");
118             // 3.通过sqlSession操作数据库
119             // 第一个参数:映射文件中的statement的Id,等于namespace + "." + statement的id;
120             // 第二个参数:指定和映射文件中所匹配的parameterType类型的参数;
121             // sqlSession.selectOne结果是与映射文件所匹配的resultType类型的对象;
122             sqlSession.insert("test.insertUser", user);
123             //执行提交事务
124             sqlSession.commit();
125             
126             //项目中经常需要 获取新增的用户的主键
127             System.out.println(user.getId());
128 
129         } catch (IOException e) {
130             e.printStackTrace();
131         } finally {
132             if (sqlSession != null) {
133                 sqlSession.close();
134             }
135             if (inputStream != null) {
136                 try {
137                     inputStream.close();
138                 } catch (IOException e) {
139                     e.printStackTrace();
140                 }
141             }
142         }
143     }
144     
145     // 根据Id删除用户
146         @Test
147         public void deleteUserTest() {
148             // mybatis的配置文件
149             String resource = "SqlMapConfig.xml";
150             InputStream inputStream = null;
151             SqlSession sqlSession = null;
152             try {
153                 inputStream = Resources.getResourceAsStream(resource);
154                 // 1.创建会话工场,传入mybatis的配置文件信息
155                 SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder()
156                         .build(inputStream);
157                 // 2.通过工厂得到SqlSession
158                 sqlSession = sqlSessionFactory.openSession();
159                 // 3.通过sqlSession操作数据库
160                 // 第一个参数:映射文件中的statement的Id,等于namespace + "." + statement的id;
161                 // 第二个参数:指定和映射文件中所匹配的parameterType类型的参数;
162                 // sqlSession.selectOne结果是与映射文件所匹配的resultType类型的对象;
163                 //传入Id,删除用户
164                 sqlSession.delete("test.deleteUser", 7);
165                 //执行提交事务
166                 sqlSession.commit();
167             } catch (IOException e) {
168                 e.printStackTrace();
169             } finally {
170                 if (sqlSession != null) {
171                     sqlSession.close();
172                 }
173                 if (inputStream != null) {
174                     try {
175                         inputStream.close();
176                     } catch (IOException e) {
177                         e.printStackTrace();
178                     }
179                 }
180             }
181         }
182         
183         // 根据Id更新用户信息
184         @Test
185         public void updateUserTest() {
186             // mybatis的配置文件
187             String resource = "SqlMapConfig.xml";
188             InputStream inputStream = null;
189             SqlSession sqlSession = null;
190             try {
191                 inputStream = Resources.getResourceAsStream(resource);
192                 // 1.创建会话工场,传入mybatis的配置文件信息
193                 SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder()
194                         .build(inputStream);
195                 // 2.通过工厂得到SqlSession
196                 sqlSession = sqlSessionFactory.openSession();
197                 //更新用户的信息
198                 User user = new User();
199                 user.setId(2);
200                 user.setUsername("小黑");
201                 user.setBirthday(new Date());
202                 user.setSex("2");
203                 user.setAddress("上海");
204                 // 3.通过sqlSession操作数据库
205                 // 第一个参数:映射文件中的statement的Id,等于namespace + "." + statement的id;
206                 // 第二个参数:指定和映射文件中所匹配的parameterType类型的参数;
207                 // sqlSession.selectOne结果是与映射文件所匹配的resultType类型的对象;
208                 //更具Id更新用户
209                 sqlSession.update("test.updateUser", user);
210                 //执行提交事务
211                 sqlSession.commit();
212             } catch (IOException e) {
213                 e.printStackTrace();
214             } finally {
215                 if (sqlSession != null) {
216                     sqlSession.close();
217                 }
218                 if (inputStream != null) {
219                     try {
220                         inputStream.close();
221                     } catch (IOException e) {
222                         e.printStackTrace();
223                     }
224                 }
225             }
226         }
227 
228 }
MybatisService.java

1.4配置文件

# Global logging configuration
#\u5728\u5F00\u53D1\u7684\u73AF\u5883\u4E0B\uFF0C\u65E5\u5FD7\u7EA7\u522B\u8981\u8BBE\u7F6E\u6210DEBUG\uFF0C\u751F\u4EA7\u73AF\u5883\u8BBE\u7F6E\u6210info\u6216error
log4j.rootLogger=DEBUG, stdout
# Console output...
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%5p [%t] - %m%n
log4j.properties
 1 <?xml version="1.0" encoding="UTF-8" ?>
 2 <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" 
 3 "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
 4 
 5 <!-- namespace命名空间,作用就是对sql进行分类化的管理,理解为sql隔离
 6     注意:使用mapper代理开发时,namespace有特殊作用
 7 -->
 8 <mapper namespace="test">
 9 <!-- 在映射文件中配置很多sql语句 -->
10 <!-- 需求:通过Id查询用户表的记录 -->
11 <!-- 通过SELECT执行数据库查询 
12     id:标识映射文件中的sql,称为statement的id;
13         将sql语句封装在mapperStatement的对象中,所以Id称为Statement的id;
14     parameterType:指定输入参数的类型,这里指定int型
15     #{}:表示一个占位符;
16     #{id}:其中Id表示接收输入的参数,参数名称就是Id,如果输入参数是简单类型,#{}中的参数名可以任意,可以是value或者其它名称;
17     resultType:指定sql输出结果所映射的java对象类型,select指定resultType表示将单条记录映射成java对象。
18 -->
19 <select id="findUserById" parameterType="int" resultType="com.mybatis.entity.User" >
20     select * from t_user where id=#{id}
21 </select>
22 <!-- 根据用户名称模糊查询用户信息,可能返回多条数据
23     resultType:指定的就是单条记录所映射的java类型;
24     ${}:表示拼接sql字符串,将接收到的参数内容不加任何修饰拼接在sql中.
25     使用${}拼接sql,可能会引起sql注入
26     ${value}:接收输入参数的内容,如果传入的是简单类型,${}中只能使用value
27  -->
28 <select id="findUserByName" parameterType="java.lang.String" resultType="com.mybatis.entity.User" >
29     select * from t_user where username LIKE '%${value}%'
30 </select>
31 <!-- 添加用户 
32 parameterType:指定输入的参数类型是pojo(包括用户信息);
33 #{}中指定pojo的属性名称,接收到pojo对象的属性值    ,mybatis通过OGNL(类似struts2的OGNL)获取对象的属性值
34 -->
35 <insert id="insertUser" parameterType="com.mybatis.entity.User" >
36     <!-- 
37         将insert插入的数据的主键返回到User对象中;
38         select last_insert_id():得到刚insert进去记录的主键值,只适用于自增主键;
39         keyProperty:将查询到的主键值,设置到parameterType指定的对象的那个属性
40         order:select last_insert_id()执行顺序,相对于insert语句来说它的执行顺序。
41         resultType:指定select last_insert_id()的结果类型;
42      -->
43     <selectKey keyProperty="id" order="AFTER" resultType="java.lang.Integer">
44         select last_insert_id()
45     </selectKey>
46     <!-- 
47         使用mysql的uuid(),实现非自增主键的返回。
48         执行过程:通过uuid()得到主键,将主键设置到user对象的Id的属性中,其次,在insert执行时,从user对象中取出Id属性值;
49      <selectKey keyProperty="id" order="BEFORE" resultType="java.lang.String">
50         select uuid()
51     </selectKey>
52         insert into t_user (id,username,birthday,sex,address) values(#{id},#{username},#{birthday},#{sex},#{address})
53      -->
54     insert into t_user (username,birthday,sex,address) values(#{username},#{birthday},#{sex},#{address})
55 </insert>
56 <!-- 删除用户 
57     根据ID删除用户,需要输入Id值
58 -->
59     <delete id="deleteUser" parameterType="java.lang.Integer">
60         delete from t_user where id=#{id}
61     </delete>
62 <!-- 更新用户 
63     需要传入用户的Id和用户的更新信息
64     parameterType:指定User对象,包括Id和用户的更新信息,注意:Id是必须存在的
65     #{id}:从输入的User对象中获取Id的属性值
66 -->
67 <update id="updateUser" parameterType="com.mybatis.entity.User">
68     update t_user set username=#{username},birthday=#{birthday},sex=#{sex},address=#{address} 
69     where id=#{id}
70 </update>
71 
72 </mapper>
User.xml
 1 <?xml version="1.0" encoding="UTF-8" ?>
 2 <!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config 3.0//EN" "http://mybatis.org/dtd/mybatis-3-config.dtd">
 3 
 4 <configuration>
 5 
 6     <!-- 和spring整合后 environments配置将废除-->
 7     <environments default="development">
 8         <environment id="development">
 9         <!-- 使用jdbc事务管理,事务控制由mybatis管理-->
10             <transactionManager type="JDBC" />
11         <!-- 数据库连接池,由mybatis管理-->
12             <dataSource type="POOLED">
13                 <property name="driver" value="com.mysql.jdbc.Driver" />
14                 <property name="url" value="jdbc:mysql://localhost:3306/mybatis?characterEncoding=utf-8" />
15                 <property name="username" value="root" />
16                 <property name="password" value="root" />
17             </dataSource>
18         </environment>
19     </environments>
20     
21     <!-- 加载映射文件 -->
22     <mappers>
23         <mapper resource="sqlmap/User.xml"/>
24     </mappers>
25 </configuration>
sqlMapConfig.xml

1.5采用 Junit 方式调试运行

 至此,一个最简单的mybatis项目就构建完成了

 

2、dao实现

2.1新建接口 UserDao.java

 1 package com.mybatis.dao;
 2 
 3 import java.util.List;
 4 
 5 import com.mybatis.entity.User;
 6 
 7 public interface UserDao {
 8     
 9     /** 根据ID查询用户信息*/
10     public User findUserById(Integer id);
11 
12     /**根据用户名称模糊查询用户信息*/
13     public List<User>  findUserByName(String username);
14 
15     /** 添加用户*/
16     public void insertUser(User user);
17 
18     /** 根据ID删除用户*/
19     public void deleteUser(Integer id);
20 
21     /** 根据ID更新用户*/
22     public void updateUser(User user);
23 
24 }
UserDao.java

2.2新建接口实现类 UserDaoImpl

 1 package com.mybatis.dao.impl;
 2 
 3 import java.util.List;
 4 
 5 import org.apache.ibatis.session.SqlSession;
 6 import org.apache.ibatis.session.SqlSessionFactory;
 7 import org.apache.ibatis.session.SqlSessionFactoryBuilder;
 8 
 9 import com.mybatis.dao.UserDao;
10 import com.mybatis.entity.User;
11 
12 public class UserDaoImpl implements UserDao {
13     
14     // 通过构造方法向 dao 实现类中注入 sqlSessionFactory
15     private SqlSessionFactory sqlSessionFactory;
16     public UserDaoImpl(SqlSessionFactory sqlSessionFactory){
17         this.sqlSessionFactory = sqlSessionFactory;
18     }
19 
20     @Override
21     public User findUserById(Integer id) {
22         SqlSession sqlSession = sqlSessionFactory.openSession();
23         User user = sqlSession.selectOne("test.findUserById", id);
24         // 释放资源
25         sqlSession.close();
26         return user;
27     }
28 
29     @Override
30     public List<User> findUserByName(String username) {
31         SqlSession sqlSession = sqlSessionFactory.openSession();
32         List<User> list = sqlSession
33                 .selectList("test.findUserByName", username);
34 
35         // 提交事务
36         sqlSession.commit();
37         // 释放资源
38         sqlSession.close();
39         return list;
40     }
41 
42     @Override
43     public void insertUser(User user) {
44         SqlSession sqlSession = sqlSessionFactory.openSession();
45         // 执行插入操作
46         sqlSession.insert("test.insertUser", user);
47         // 提交事务
48         sqlSession.commit();
49         // 释放资源
50         sqlSession.close();
51     }
52 
53     @Override
54     public void deleteUser(Integer id) {
55         SqlSession sqlSession = sqlSessionFactory.openSession();
56         // 执行插入操作
57         sqlSession.delete("test.deleteUser", id);
58         // 提交事务
59         sqlSession.commit();
60         // 释放资源
61         sqlSession.close();
62     }
63 
64     @Override
65     public void updateUser(User user) {
66          SqlSession sqlSession = sqlSessionFactory.openSession();
67             // 执行插入操作
68             sqlSession.update("test.updateUser", user);
69             // 提交事务
70             sqlSession.commit();
71             // 释放资源
72             sqlSession.close();
73     }
74 
75 }
UserDaoImpl.java

2.3新建接口测试类 UserDaoTest.java

 1 package com.mybatis.dao;
 2 
 3 import java.io.InputStream;
 4 import java.util.Date;
 5 import java.util.List;
 6 
 7 import org.apache.ibatis.io.Resources;
 8 import org.apache.ibatis.session.SqlSessionFactory;
 9 import org.apache.ibatis.session.SqlSessionFactoryBuilder;
10 import org.junit.Before;
11 import org.junit.Test;
12 
13 import com.mybatis.dao.impl.UserDaoImpl;
14 import com.mybatis.entity.User;
15 
16 public class UserDaoTest {
17 
18     private SqlSessionFactory sqlSessionFactory;
19 
20     @Before
21     public void setUp() throws Exception {
22         String resource = "SqlMapConfig.xml";
23         InputStream inputStream = Resources.getResourceAsStream(resource);
24         sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);
25     }
26 
27     @Test
28     public void findUserByIdTest() {
29         UserDaoImpl userDao = new UserDaoImpl(sqlSessionFactory);
30         User user = userDao.findUserById(1);
31         System.out.println(user);
32     }
33 
34     @Test
35     public void findUserByNameTest() {
36         UserDaoImpl userDao = new UserDaoImpl(sqlSessionFactory);
37         List<User> list = userDao.findUserByName("小");
38         System.out.println(list);
39     }
40 
41     @Test
42     public void insertUserTest() {
43         UserDaoImpl userDao = new UserDaoImpl(sqlSessionFactory);
44         User user = new User();
45         user.setUsername("张三丰");
46         user.setSex("1");
47         user.setBirthday(new Date());
48         user.setAddress("武当山");
49         userDao.insertUser(user);
50     }
51 
52     @Test
53     public void deleteUserTest() {
54         UserDaoImpl userDao = new UserDaoImpl(sqlSessionFactory);
55         userDao.deleteUser(8);
56     }
57 
58     @Test
59     public void updateUserTest() {
60         UserDaoImpl userDao = new UserDaoImpl(sqlSessionFactory);
61         User user = new User();
62         user.setId(1);
63         user.setUsername("王六");
64         user.setSex("2");
65         user.setAddress("天津");
66         user.setBirthday(new Date());
67         userDao.updateUser(user);
68     }
69     
70 }
UserDaoTest.java

2.4采用 Junit 方式调试运行

 

3、用mapper代理dao

3.1新建 UserMapper.java 接口,作用等同 UserDao.java 接口

 1 package com.mybatis.dao;
 2 
 3 import java.util.List;
 4 
 5 import com.mybatis.entity.User;
 6 
 7 public interface UserMapper {
 8     
 9     /** 根据ID查询用户信息 */
10     public User findUserById(int id);
11 
12     /** 根据用户名称模糊查询用户信息 */
13     public List<User> findUserByName(String username);
14 
15     /** 添加用户 */
16     public void insertUser(User user);
17 
18     /** 根据ID删除用户 */
19     public void deleteUser(Integer id);
20 
21     /** 根据ID更新用户 */
22     public void updateUser(User user);
23 
24 }
UserMapper.java

3.2修改 User.xml 为 UserMapper.xml

内容只需要修改其命名空间即可。路径为src下 UserMapper.java 的路径

3.3添加 UserMapper.xml 在 SqlMapConfig.xml 中的映射

3.4测试代码

 1 package com.mybatis.dao;
 2 
 3 import java.io.InputStream;
 4 import java.util.Date;
 5 import java.util.List;
 6 
 7 import org.apache.ibatis.io.Resources;
 8 import org.apache.ibatis.session.SqlSession;
 9 import org.apache.ibatis.session.SqlSessionFactory;
10 import org.apache.ibatis.session.SqlSessionFactoryBuilder;
11 import org.junit.Before;
12 import org.junit.Test;
13 
14 import com.mybatis.entity.User;
15 
16 public class UserMapperTest {
17 
18     private SqlSessionFactory sqlSessionFactory;
19 
20     // 此方法是在执行findUserByIdTest之前执行
21     @Before
22     public void setUp() throws Exception {
23         String resource = "SqlMapConfig.xml";
24         InputStream inputStream = Resources.getResourceAsStream(resource);
25         // 创建SqlSessionFcatory
26         sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);
27     }
28 
29     @Test
30     public void testFindUserById() {
31         SqlSession sqlSession = sqlSessionFactory.openSession();
32         // 创建Usermapper对象,mybatis自动生成mapper代理对象
33         UserMapper mapper = sqlSession.getMapper(UserMapper.class);
34         User user = mapper.findUserById(1);
35         System.out.println(user);
36         sqlSession.close();
37     }
38 
39     @Test
40     public void testFindUserByName() {
41         SqlSession sqlSession = sqlSessionFactory.openSession();
42         // 创建Usermapper对象,mybatis自动生成mapper代理对象
43         UserMapper mapper = sqlSession.getMapper(UserMapper.class);
44         List<User> list = mapper.findUserByName("小");
45         System.out.println(list);
46         sqlSession.close();
47     }
48 
49     @Test
50     public void testDeleteUser() {
51         SqlSession sqlSession = sqlSessionFactory.openSession();
52         // 创建Usermapper对象,mybatis自动生成mapper代理对象
53         UserMapper mapper = sqlSession.getMapper(UserMapper.class);
54         mapper.deleteUser(6);
55         sqlSession.commit();
56         sqlSession.close();
57     }
58     
59     @Test
60     public void testInsertUser() {
61         SqlSession sqlSession = sqlSessionFactory.openSession();
62         // 创建Usermapper对象,mybatis自动生成mapper代理对象
63         User user = new User();
64         user.setUsername("者别");
65         user.setSex("1");
66         user.setAddress("蒙古乞颜部落");
67         user.setBirthday(new Date());
68         UserMapper mapper = sqlSession.getMapper(UserMapper.class);
69         mapper.insertUser(user);
70         sqlSession.commit();
71         sqlSession.close();
72     }
73     
74     @Test
75     public void testUpdateUser() {
76         SqlSession sqlSession = sqlSessionFactory.openSession();
77         // 创建Usermapper对象,mybatis自动生成mapper代理对象
78         User user = new User();
79         user.setId(11);//必须设置Id
80         user.setUsername("神箭手者别");
81         user.setSex("1");
82         user.setAddress("蒙古乞颜部落");
83         user.setBirthday(new Date());
84         UserMapper mapper = sqlSession.getMapper(UserMapper.class);
85         mapper.updateUser(user);
86         sqlSession.commit();
87         sqlSession.close();
88     }
89     
90 }
UserMapperTest.java

3.5 junit 调试运行

posted @ 2018-01-31 15:03  大概是个小学生  阅读(1130)  评论(0编辑  收藏  举报