16resultType="me.gacl.domain.User">
17select*fromuserswhereid=#{id}
18
19
20
--创建用户(Create)-->
21
22insertintousers(name,age)values(#{name},#{age})
23
24
25
--删除用户(Remove)-->
26
27deletefromuserswhereid=#{id}
28
29
30
--修改用户(Update)-->
31
32updateuserssetname=#{name},age=#{age}whereid=#{id}
33
34
35
--查询全部用户-->
36
37select*fromusers
38
39
40
单元测试类代码如下:
1packageme.gacl.test;
2
3importjava.util.List;
4importme.gacl.domain.User;
5importme.gacl.util.MyBatisUtil;
6importorg.apache.ibatis.session.SqlSession;
7importorg.junit.Test;
8
9publicclassTestCRUDByXmlMapper{
10
11@Test
12publicvoidtestAdd(){
13//SqlSessionsqlSession=MyBatisUtil.getSqlSession(false);
14SqlSessionsqlSession=MyBatisUtil.getSqlSession(true);
15/**
16*映射sql的标识字符串,
17*me.gacl.mapping.userMapper是userMapper.xml文件中mapper标签的namespace属性的值,
18*addUser是insert标签的id属性值,通过insert标签的id属性值就可以找到要执行的SQL
19*/
20Stringstatement="me.gacl.mapping.userMapper.addUser";//映射sql的标识字符串
21Useruser=newUser();
22user.setName("用户孤傲苍狼");
23user.setAge(20);
24//执行插入操作
25intretResult=sqlSession.insert(statement,user);
26//手动提交事务
27//sqlSmit();
28//使用SqlSession执行完SQL之后需要关闭SqlSession
29sqlSession.close();
30System.out.println(retResult);
31}
32
33@Test
34publicvoidtestUpdate(){
35SqlSessionsqlSession=MyBatisUtil.getSqlSession(true);
36/**
37*映射sql的标识字符串,
38*me.gacl.mapping.userMapper是userMapper.xml文件中mapper标签的namespace属性的值,
39*updateUser是update标签的id属性值,通过update标签的id属性值就可以找到要执行的SQL
40*/
41Stringstatement="me.gacl.mapping.userMapper.updateUser";//映射sql的标识字符串
42Useruser=newUser();
43user.setId(3);
44user.setName("孤傲苍狼");
45user.setAge(25);
46//执行修改操作
47intretResult=sqlSession.update(statement,user);
48//使用SqlSession执行完SQL之后需要关闭SqlSession
49sqlSession.close();
50System.out.println(retResult);
51}
52
53@Test
54publicvoidtestDelete(){
55SqlSessionsqlSession=MyBatisUtil.getSqlSession(true);
56/**
57*映射sql的标识字符串,
58*me.gacl.mapping.userMapper是userMapper.xml文件中mapper标签的namespace属性的值,
59*deleteUser是delete标签的id属性值,通过delete标签的id属性值就可以找到要执行的SQL
60*/
61Stringstatement="me.gacl.mapping.userMapper.deleteUser";//映射sql的标识字符串
62//执行删除操作
63intretResult=sqlSession.delete(statement,5);
64//使用SqlSession执行完SQL之后需要关闭SqlSession
65sqlSession.close();
66System.out.println(retResult);
67}
68
69@Test
70publicvoidtestGetAll(){
71SqlSessionsqlSession=MyBatisUtil.getSqlSession();
72/**
73*映射sql的标识字符串,
74*me.gacl.mapping.userMapper是userMapper.xml文件中mapper标签的namespace属性的值,
75*getAllUsers是select标签的id属性值,通过select标签的id属性值就可以找到要执行的SQL
76*/
77Stringstatement="me.gacl.mapping.userMapper.getAllUsers";//映射sql的标识字符串
78//执行查询操作,将查询结果自动封装成List返回
79ListlstUsers=sqlSession.selectList(statement);
80//使用SqlSession执行完SQL之后需要关闭SqlSession
81sqlSession.close();
82System.out.println(lstUsers);
83}
84}
二、使用MyBatis对表执行CRUD操作——基于注解的实现
1、定义sql映射的接口
UserMapperI接口的代码如下:
1packageme.gacl.mapping;
2
3importjava.util.List;
4importme.gacl.domain.User;
5importorg.apache.ibatis.annotations.Delete;
6importorg.apache.ibatis.annotations.Insert;
7importorg.apache.ibatis.annotations.Select;
8importorg.apache.ibatis.annotations.Update;
9
10/**
11*@authorgacl
12*定义sql映射的接口,使用注解指明方法要执行的SQL
13*/
14publicinterfaceUserMapperI{
15
16//使用@Insert注解指明add方法要执行的SQL
17@Insert("insertintousers(name,age)values(#{name},#{age})")
18publicintadd(Useruser);
19
20//使用@Delete注解指明deleteById方法要执行的SQL
21@Delete("deletefr