如何将MyBatis二级缓存改造成适应长尾关键词查询的智能缓存系统?

2026-04-15 08:2311阅读0评论SEO基础
  • 内容介绍
  • 文章标签
  • 相关推荐

本文共计627个文字,预计阅读时间需要3分钟。

如何将MyBatis二级缓存改造成适应长尾关键词查询的智能缓存系统?

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;

如何将MyBatis二级缓存改造成适应长尾关键词查询的智能缓存系统?

UserInfoMapper

u.*,r.id as "rinfo.id",r.name as "rinfo.name" select seq2.nextval from dual insert into userinfo values#{id},#{name},#{pwd},#{roleid} update userinfo name=#{name}, pwd=#{pwd}, roleid=#{roleid} where id=0 test

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分钟。

如何将MyBatis二级缓存改造成适应长尾关键词查询的智能缓存系统?

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;

如何将MyBatis二级缓存改造成适应长尾关键词查询的智能缓存系统?

UserInfoMapper

u.*,r.id as "rinfo.id",r.name as "rinfo.name" select seq2.nextval from dual insert into userinfo values#{id},#{name},#{pwd},#{roleid} update userinfo name=#{name}, pwd=#{pwd}, roleid=#{roleid} where id=0 test

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(); } }