一、全局配置文件

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
<? xml  version = "1.0"  encoding = "UTF-8"  ?>
<!DOCTYPE configuration
PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-config.dtd">
< configuration >
     <!-- 别名 -->
     < typeAliases >
         < typeAlias  type = "com.liu.po.UserInfo"  alias = "UserInfo" />
     </ typeAliases >
     <!-- 配置数据库链接 -->
     < environments  default = "developments" >
         <!-- mysql -->
         < environment  id = "mysql" >
             < transactionManager  type = "JDBC" ></ transactionManager >
             < dataSource  type = "POOLED" >
                 < property  name = "driver"  value = "com.mysql.jdbc.Driver" />
                 < property  name = "url"  value = "jdbc:mysql://127.0.0.1:3306/test" />
                 < property  name = "username"  value = "root" />
                 < property  name = "password"  value = "" />
             </ dataSource >    
         </ environment >
     </ environments >
     < mappers >
         < mapper  class = "com.liu.mapper.UserInfoMapper"  />
     </ mappers
</ configuration >

二、获取SqlSession工具类

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
package  com.liu.utils;
import  java.io.InputStream;
import  org.apache.ibatis.io.Resources;
import  org.apache.ibatis.session.SqlSession;
import  org.apache.ibatis.session.SqlSessionFactory;
import  org.apache.ibatis.session.SqlSessionFactoryBuilder;
public  class  DBFactory {
     public  static  SqlSessionFactory sqlSessionFactory =  null ;
     static  {
         try  {
             // 配置文件
             String resource =  "mybatis-config.xml" ;
             InputStream inputStream = Resources.getResourceAsStream(resource);
             sqlSessionFactory =  new  SqlSessionFactoryBuilder().build(
                     inputStream,  "mysql" );
         catch  (Exception e) {
             e.printStackTrace();
         }
     }
     public  static  SqlSessionFactory getFactory() {
         return  sqlSessionFactory;
     }
     
     public  static  SqlSession getSession(){
         
         return  sqlSessionFactory.openSession();
     }
}

三、与之对应的实体类

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
package  com.liu.po;
/**
  * 用户信息的实体类
  * @author yingjie
  *
  */
public  class  UserInfo {
     private  Integer userId;
     
     private  String userName;
     
     private  String userSex;
     public  Integer getUserId() {
         return  userId;
     }
     public  void  setUserId(Integer userId) {
         this .userId = userId;
     }
     public  String getUserName() {
         return  userName;
     }
     public  void  setUserName(String userName) {
         this .userName = userName;
     }
     public  String getUserSex() {
         return  userSex;
     }
     public  void  setUserSex(String userSex) {
         this .userSex = userSex;
     }
     @Override
     public  String toString() {
         return  "UserInfo [userId="  + userId +  ", userName="  + userName
                 ", userSex="  + userSex +  "]" ;
     }
     
     
     
}

四、Mapper接口

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
package  com.liu.mapper;
import  java.util.HashMap;
import  java.util.List;
import  org.apache.ibatis.annotations.Delete;
import  org.apache.ibatis.annotations.Insert;
import  org.apache.ibatis.annotations.Param;
import  org.apache.ibatis.annotations.Result;
import  org.apache.ibatis.annotations.Results;
import  org.apache.ibatis.annotations.Select;
import  org.apache.ibatis.annotations.Update;
import  com.liu.po.UserInfo;
public  interface  UserInfoMapper {
 
     @Select (value={ "select * from user_info" })
     public  List<HashMap> getUserList();
     
     /**
      * 根据条件查询用户信息
      * @param user 查询条件
      * @return
      */
     @Select (value={ "select * from user_info where user_id=#{userId}" })
     @Results ({ @Result (property= "userId" ,column= "user_id" ),
         @Result (property= "userName" ,column= "user_name" ),
         @Result (property= "userSex" ,column= "user_sex" )
     })
     public  List<UserInfo> selectUser(UserInfo user);
     
     /**
      * 根据编号查询用户信息
      * @param userId 用户编号
      * @return
      */
     @Select (value={ "select * from user_info where user_id=#{userId} and user_name=#{userName}" })
     @Results ({ @Result (property= "userId" ,column= "user_id" ),
         @Result (property= "userName" ,column= "user_name" ),
         @Result (property= "userSex" ,column= "user_sex" )
     })
     public  UserInfo selectOneUser( @Param ( "userId" ) Integer userId, @Param ( "userName" ) String userName);
     
     /**
      * 添加用户信息
      * @param user 添加的内容
      * @return 返回影响行数
      */
     @Insert ( "insert into  user_info (user_name,user_sex) values(#{userName},#{userSex})" )
     public  int  addUser(UserInfo user);
     
     
     /**
      * 修改用户信息
      * @param user 添加的内容
      * @return 返回影响行数
      */
     @Update ( "update user_info set user_name=#{userName},user_sex=#{userSex} where user_id = #{userId}" )
     public  int  updateUser(UserInfo user);
     
     /**
      * 删除用户信息
      * @param userId 编号
      * @return 返回影响行数
      */
     @Delete ( "delete  from user_info where user_id=#{userId}" )
     public  int  deleteUser(Integer userId);
}

五、测试类

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
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
package  com.liu;
import  java.util.HashMap;
import  java.util.List;
import  org.apache.ibatis.session.SqlSession;
import  org.junit.After;
import  org.junit.Before;
import  org.junit.Test;
import  com.liu.mapper.UserInfoMapper;
import  com.liu.po.UserInfo;
import  com.liu.utils.DBFactory;
public  class  UserTest {
     SqlSession session =  null ;
     UserInfoMapper mapper =  null ;
     @Before
     public  void  testBefore() {
         session = DBFactory.getSession();
         mapper = session.getMapper(UserInfoMapper. class );
     }
     @After
     public  void  testAfter() {
         session.close();
     }
     @Test
     public  void  select1() {
         List<HashMap> list = mapper.getUserList();
         System.out.println(list.size());
         for  (HashMap map : list) {
             System.out.println( "编号"  + map.get( "user_id" ) +  " 姓名: "
                     + map.get( "user_name" ) +  " 性别:"  + map.get( "user_sex" ));
         }
     }
     @Test
     public  void  select2() {
         UserInfo puser =  new  UserInfo();
         puser.setUserId( 4 );
         List<UserInfo> list = mapper.selectUser(puser);
         System.out.println(list.size());
         for  (UserInfo user : list) {
             System.out.println(user);
         }
     }
     @Test
     public  void  select3() {
         UserInfo user = mapper.selectOneUser( 4 "王五他爸" );
         System.out.println(user);
     }
     @Test
     public  void  addUser() {
         try  {
             UserInfo user =  new  UserInfo();
             user.setUserName( "悟空的儿子" );
             user.setUserSex( "男" );
             int  count = mapper.addUser(user);
             if  (count >  0 ) {
                 session.commit(); // 提交
                 System.out.println( "成功" );
             }
         catch  (Exception e) {
             session.rollback();
             e.printStackTrace();
         }
     }
     @Test
     public  void  updateUser() {
         try  {
             UserInfo user =  new  UserInfo();
             user.setUserId( 7 );
             user.setUserName( "小芳的孙子" );
             user.setUserSex( "男" );
             int  count = mapper.updateUser(user);
             if  (count >  0 ) {
                 session.commit(); // 提交
                 System.out.println( "成功" );
             }
         catch  (Exception e) {
             session.rollback();
             e.printStackTrace();
         }
     }
     @Test
     public  void  deleteUser() {
         try  {
             int  count = mapper.deleteUser( 3 );
             if  (count >  0 ) {
                 session.commit(); // 提交
                 System.out.println( "成功" );
             }
         catch  (Exception e) {
             session.rollback();
             e.printStackTrace();
         }
     }
}