关于缓存的测试

关于缓存的测试


 

	
	
	
	
	
	
		update users set name=#{name},age=#{age} where id=#{id}
	

 




	
	
		
			
			
				
				
				
				
			
		
	
	
	
		
	

 

package com.hous.day8;
import java.io.InputStream;
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;

/**
 * 测试缓存
 * 1.一级缓存:session级缓存
 * 1)使用session.clearCache()清除缓存
 * 2)执行cud操作清除缓存
 * 3)使用不同的session
 * 
 * 2.二级缓存:映射文件级缓存
 * 
 */
public class MyTest {
	
	private SqlSessionFactory factory = null;
	
	@Before
	public void setUp() throws Exception {
		String resource = "day8/config.xml";
		InputStream config = MyTest.class.getClassLoader().getResourceAsStream(resource);
		factory = new SqlSessionFactoryBuilder().build(config);
	}

	@Test
	public void testCacheOne() {
		SqlSession session = factory.openSession();
		String statement = "com.hous.day8.userMapper.getUser";
		User user = session.selectOne(statement, 3);
		System.out.println("查询结果:" + user);
		System.out.println("====================");
		
		//第一种情况:使用session.clearCache()清除缓存
//		session.clearCache();
//		user = session.selectOne(statement, 3);
//		System.out.println("查询结果:" + user);
		
		//第二种情况:执行cud操作清除缓存
//		String updateStatement = "com.hous.day8.userMapper.updateUser";
//		session.update(updateStatement, new User(12,"genyang", new Random().nextInt(200)));
//		session.commit();
//		user = session.selectOne(statement, 3);
//		System.out.println("查询结果:" + user);
		
		//第三种情况:关闭session.close()
		session.close();
		user = session.selectOne(statement, 3);
		System.out.println("查询结果:" + user);
		
	}
	
	@Test
	public void testCacheTwo() {
		SqlSession session1 = factory.openSession();
		SqlSession session2 = factory.openSession();
		String statement = "com.hous.day8.userMapper.getUser";
		User user = session1.selectOne(statement, 3);
		session1.commit();
		System.out.println("查询结果:" + user);
		System.out.println("====================");
		
		user = session2.selectOne(statement, 3);
		session2.commit();
		System.out.println("查询结果:" + user);
	}

}

 

package com.hous.day8;

import java.io.Serializable;

public class User implements Serializable{
	private static final long serialVersionUID = 1L;
	private int id;
	private String name;
	private int age;

	public User() {
		super();
	}

	public User(int id, String name, int age) {
		super();
		this.id = id;
		this.name = name;
		this.age = age;
	}

	public int getId() {
		return id;
	}

	public void setId(int id) {
		this.id = id;
	}

	public String getName() {
		return name;
	}

	public void setName(String name) {
		this.name = name;
	}

	public int getAge() {
		return age;
	}

	public void setAge(int age) {
		this.age = age;
	}

	@Override
	public String toString() {
		return "User [id=" + id + ", name=" + name + ", age=" + age + "]";
	}

}

 

你可能感兴趣的:(MyBatis开发)