MyBatis二级缓存是如何实现跨会话共享的?
- 内容介绍
- 文章标签
- 相关推荐
本文共计637个文字,预计阅读时间需要3分钟。
%E2%80%9C%E6%98%AF%E4%BB%80%E4%B9%88%E5%9B%BD%E5%BA%A6%E6%88%90%E9%95%BF%E7%9A%84%E5%8F%82%E6%95%B0%E5%8F%82%E8%80%83%E6%96%B9%E6%B3%95%E3%80%82%E2%80%9D
package pidan.test; import java.io.IOException; 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; import pidan.dao.UserInfoDao; public class Test { static SqlSessionFactory sqlSessionFactory; public static void main(String[] args) throws Exception { SqlSession session1=getSqlSession(); //二级缓存 UserInfoDao dao1=session1.getMapper(UserInfoDao.class); System.out.println(dao1.getUserById(1005)); Thread.sleep(15000); session1.close(); SqlSession session2=getSqlSession(); UserInfoDao dao2=session2.getMapper(UserInfoDao.class); System.out.println(dao2.getUserById(1005)); } static{ try { String resource="mybatis.xml"; InputStream inputStream=Resources.getResourceAsStream(resource); sqlSessionFactory =new SqlSessionFactoryBuilder().build(inputStream); } catch (IOException e) { e.printStackTrace(); } } //SqlSession不能使用单例,sqlSessionFactory可以使用单例 public static SqlSession getSqlSession() { return sqlSessionFactory.openSession(); } }
本文共计637个文字,预计阅读时间需要3分钟。
%E2%80%9C%E6%98%AF%E4%BB%80%E4%B9%88%E5%9B%BD%E5%BA%A6%E6%88%90%E9%95%BF%E7%9A%84%E5%8F%82%E6%95%B0%E5%8F%82%E8%80%83%E6%96%B9%E6%B3%95%E3%80%82%E2%80%9D
package pidan.test; import java.io.IOException; 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; import pidan.dao.UserInfoDao; public class Test { static SqlSessionFactory sqlSessionFactory; public static void main(String[] args) throws Exception { SqlSession session1=getSqlSession(); //二级缓存 UserInfoDao dao1=session1.getMapper(UserInfoDao.class); System.out.println(dao1.getUserById(1005)); Thread.sleep(15000); session1.close(); SqlSession session2=getSqlSession(); UserInfoDao dao2=session2.getMapper(UserInfoDao.class); System.out.println(dao2.getUserById(1005)); } static{ try { String resource="mybatis.xml"; InputStream inputStream=Resources.getResourceAsStream(resource); sqlSessionFactory =new SqlSessionFactoryBuilder().build(inputStream); } catch (IOException e) { e.printStackTrace(); } } //SqlSession不能使用单例,sqlSessionFactory可以使用单例 public static SqlSession getSqlSession() { return sqlSessionFactory.openSession(); } }

