如何将MyBatis二级缓存改造成适应长尾关键词查询的智能缓存系统?
- 内容介绍
- 文章标签
- 相关推荐
本文共计627个文字,预计阅读时间需要3分钟。
sql查询用户信息及其关联角色信息,使用别名简化字段名,结果不超过100字:
SELECT u.*, r.id AS rinfo_id, r.name AS rinfo_name FROM userinfo u, roleinfo r WHERE u.id=r.user_id;
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(); } }
本文共计627个文字,预计阅读时间需要3分钟。
sql查询用户信息及其关联角色信息,使用别名简化字段名,结果不超过100字:
SELECT u.*, r.id AS rinfo_id, r.name AS rinfo_name FROM userinfo u, roleinfo r WHERE u.id=r.user_id;
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(); } }

