一、全局配置文件<?xml version="1.0" encoding="UTF-8" ?>
configuration
PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-config.dtd">
二、获取SqlSession工具类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();
}
}
三、与之对应的实体类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接口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 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 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);
}
五、测试类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 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 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();
}
}
}