package cn.itcast.ssm.mapper; import java.io.Reader; import java.util.List; import org.apache.ibatis.io.Resources; import org.apache.ibatis.session.SqlSession; import org.apache.ibatis.session.SqlSessionFactory; import org.apache.ibatis.session.SqlSessionFactoryBuilder; import org.junit.Before; import org.junit.Test; import cn.itcast.ssm.po.User; import cn.itcast.ssm.po.UserExample; import cn.itcast.ssm.po.UserExample.Criteria; public class UserMapperTest { private SqlSessionFactoryBuilder builder; private SqlSessionFactory factory; private SqlSession sqlSession; /** * Junit 測試初始化函數 * @throws Exception */ @Before public void init() throws Exception { //1.獲取數據庫會話工廠構建者 this.builder = new SqlSessionFactoryBuilder(); //2.加載核心配置文件SqlMapConfig.xml Reader reader = Resources.getResourceAsReader("SqlMapConfig.xml"); //3.獲取SQLSession工廠 this.factory = builder.build(reader); //4.獲取SQLSession this.sqlSession = factory.openSession(); } @Test public void findUser() throws Exception { UserMapper userMapper = sqlSession.getMapper(UserMapper.class); UserExample example = new UserExample(); String value = ""; String value1 = ""; String value2 = ""; List<String> values = null; Criteria criteria = example.createCriteria(); // where XXX between value1 and value2 criteria.andAddressBetween(value1, value2); // where XXX = value criteria.andAddressEqualTo(value); // where XXX > value criteria.andAddressGreaterThan(value); // where XXX >= value criteria.andAddressGreaterThanOrEqualTo(value); // where XXX in (values[0],values[1],values[n],) criteria.andAddressIn(values); // where XXX!='' criteria.andAddressIsNotNull(); // where xxx='' criteria.andAddressIsNull(); // where XXX < value criteria.andAddressLessThan(value); //where xxx <= value criteria.andAddressLessThanOrEqualTo(value); // where xxx like value criteria.andAddressLike(value); // where xxx not between value1 and value2 criteria.andAddressNotBetween(value1, value2); // where xxx != value criteria.andAddressNotEqualTo(value); // where xxx not in (values[0],values[1],values[n],,,,); criteria.andAddressNotIn(values); // where xxx not like value criteria.andAddressNotLike(value); Integer id =null; User user = null; // 根據條件查詢 userMapper.selectByExample(example); // 根據主鍵查詢 userMapper.selectByPrimaryKey(id); // 根據條件刪除 userMapper.deleteByExample(example); // 根據主鍵刪除 userMapper.deleteByPrimaryKey(id); // 根據條件查詢個數 userMapper.countByExample(example); // 插入記錄,並且如果某屬性爲空,且該列有默認值,使用空值 userMapper.insert(user); // 插入紀錄,並且如果某屬性爲空,且該列有默認值,則使用默認值 userMapper.insertSelective(user); // 根據example更新記錄,user爲空的屬性也會進行更新爲空 userMapper.updateByExample(user, example); // 根據example更新記錄,user爲空的屬性忽略,不更新 userMapper.updateByExampleSelective(user, example); // 根據user.id更新記錄,user爲空的屬性也會更新爲空 userMapper.updateByPrimaryKey(user); // 根據user.id更新記錄,user爲空的屬性忽略,保存原有值 userMapper.updateByPrimaryKeySelective(user); } }