一、全局配置文件

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();
        }
    }
}