一级缓存
在EmpMapper.java接口中增加如下方法:
/**
* 根据id查询员工
* @param id
* @return
*/
Emp selectById(Long id);
/**
* 根据id删除用户
* @param id
* @return
*/
int deleteByid(Long id);
在EmpMapper.xml配置文件中增加如下配置:
<select id="selectById" resultType="tk.mybatis.simple.model.Emp">
SELECT * from emp where id = #{id}
</select>
<delete id="deleteByid">
DELETE FROM emp where id = #{id}
测试缓存的代码如下:
public class CacheTest extends BaseMapperTest{
@Test
public void testL1Cache(){
SqlSession sqlSession = getSqlSession();
Emp emp = null;
try {
EmpMapper empMapper = sqlSession.getMapper(EmpMapper.class);
emp = empMapper.selectById(3L);
System.out.println(emp.getUserName());
System.out.println("-----------------------------");
emp.setUserEmail("张三");
Emp emp1 = empMapper.selectById(3L);
System.out.println(emp1.getUserName());
Assert.assertEquals(emp,emp1);
}finally {
System.out.println("123");
sqlSession.close();
}
System.out.println("开启新的sqlSession");
sqlSession = getSqlSession();
try {
EmpMapper empMapper = sqlSession.getMapper(EmpMapper.class);
Emp emp2 = empMapper.selectById(3L);
System.out.println(emp.getUserName());
System.out.println("-----------------------------");
emp.setUserEmail("里斯");
//执行delete删除操作
empMapper.deleteByid (2L);
Emp emp3 = empMapper.selectById(3L);
System.out.println(emp3.getUserName());
Assert.assertEquals(emp2,emp3);
}finally {
System.out.println("123");
sqlSession.close();
}
}
}
测试结果如下:
[DEBUG] 2018-05-01 07:11:25,897 method:org.apache.ibatis.logging.jdbc.BaseJdbcLogger.debug(BaseJdbcLogger.java:159)
==> Preparing: SELECT * from emp where id = ?
[DEBUG] 2018-05-01 07:11:25,944 method:org.apache.ibatis.logging.jdbc.BaseJdbcLogger.debug(BaseJdbcLogger.java:159)
==> Parameters: 3(Long)
[TRACE] 2018-05-01 07:11:26,007 method:org.apache.ibatis.logging.jdbc.BaseJdbcLogger.trace(BaseJdbcLogger.java:165)
<== Columns: id, user_name, user_password, user_email, user_info, head_img, create_time
[TRACE] 2018-05-01 07:11:26,007 method:org.apache.ibatis.logging.jdbc.BaseJdbcLogger.trace(BaseJdbcLogger.java:165)
<== Row: 3, test 3, 123456, email 3, <>, <>, 2018-04-29 13:33:33.0
[DEBUG] 2018-05-01 07:11:26,007 method:org.apache.ibatis.logging.jdbc.BaseJdbcLogger.debug(BaseJdbcLogger.java:159)
<== Total: 1
test 3
分割线(“———————————————-”)
test 3
123
开启新的sqlSession
[DEBUG] 2018-05-01 07:11:26,101 method:org.apache.ibatis.logging.jdbc.BaseJdbcLogger.debug(BaseJdbcLogger.java:159)
==> Preparing: SELECT * from emp where id = ?
[DEBUG] 2018-05-01 07:11:26,101 method:org.apache.ibatis.logging.jdbc.BaseJdbcLogger.debug(BaseJdbcLogger.java:159)
==> Parameters: 3(Long)
[TRACE] 2018-05-01 07:11:26,163 method:org.apache.ibatis.logging.jdbc.BaseJdbcLogger.trace(BaseJdbcLogger.java:165)
<== Columns: id, user_name, user_password, user_email, user_info, head_img, create_time
[TRACE] 2018-05-01 07:11:26,163 method:org.apache.ibatis.logging.jdbc.BaseJdbcLogger.trace(BaseJdbcLogger.java:165)
<== Row: 3, test 3, 123456, email 3, <>, <>, 2018-04-29 13:33:33.0
[DEBUG] 2018-05-01 07:11:26,163 method:org.apache.ibatis.logging.jdbc.BaseJdbcLogger.debug(BaseJdbcLogger.java:159)
<== Total: 1
test 3
分割线(“———————————————-”)
[DEBUG] 2018-05-01 07:11:26,163 method:org.apache.ibatis.logging.jdbc.BaseJdbcLogger.debug(BaseJdbcLogger.java:159)
==> Preparing: DELETE FROM emp where id = ?
[DEBUG] 2018-05-01 07:11:26,163 method:org.apache.ibatis.logging.jdbc.BaseJdbcLogger.debug(BaseJdbcLogger.java:159)
==> Parameters: 2(Long)
[DEBUG] 2018-05-01 07:11:26,241 method:org.apache.ibatis.logging.jdbc.BaseJdbcLogger.debug(BaseJdbcLogger.java:159)
<== Updates: 1
[DEBUG] 2018-05-01 07:11:26,241 method:org.apache.ibatis.logging.jdbc.BaseJdbcLogger.debug(BaseJdbcLogger.java:159)
==> Preparing: SELECT * from emp where id = ?
[DEBUG] 2018-05-01 07:11:26,257 method:org.apache.ibatis.logging.jdbc.BaseJdbcLogger.debug(BaseJdbcLogger.java:159)
==> Parameters: 3(Long)
[TRACE] 2018-05-01 07:11:26,288 method:org.apache.ibatis.logging.jdbc.BaseJdbcLogger.trace(BaseJdbcLogger.java:165)
<== Columns: id, user_name, user_password, user_email, user_info, head_img, create_time
[TRACE] 2018-05-01 07:11:26,288 method:org.apache.ibatis.logging.jdbc.BaseJdbcLogger.trace(BaseJdbcLogger.java:165)
<== Row: 3, test 3, 123456, email 3, <>, <>, 2018-04-29 13:33:33.0
[DEBUG] 2018-05-01 07:11:26,288 method:org.apache.ibatis.logging.jdbc.BaseJdbcLogger.debug(BaseJdbcLogger.java:159)
<== Total: 1
test 3
123
java.lang.AssertionError:
Expected :tk.mybatis.simple.model.Emp@75d4a5c2
Actual :tk.mybatis.simple.model.Emp@557caf28