对于缓存框架的条件查询
2017-02-22 20:08
295 查看
首先还是三层框架
配置文件
动态SQL 例如:
<select id="serchAdmin" parameterType="java.util.Map" resultType="Adminuser">
select * from adminuser
<where>
<if test="adminname != null">
and adminname like concat('%',#{adminname},'%')
</if>
<if test="roleid != null and roleid!= ''">
and roleid = #{roleid}
</if>
</where>
</select>
Controller 里的
@RequestMapping(value="admin/list")
public String list(Model model,String adminname,Integer roleid){
List<Roleinfo> roleList =adminService.getAllRole();
List<Adminuser> list =null;
//条件查询
String key = String.format("admin_%s_%s", adminname,roleid);
list = (List<Adminuser>) MemcachedUtil.get(key);
if(list != null){
System.out.println("从缓存中取数据");
}else{
System.out.println("从数据库中去数据!");
//list=adminService.getAllAdminuser();
list = adminService.serchAdmin(adminname,roleid);
MemcachedUtil.add(key, list, 20000);
}
model.addAttribute("list", list);
model.addAttribute("roleList", roleList);
model.addAttribute("adminname", adminname);
model.addAttribute("roleid", roleid);
return "admin/list";
}
存到缓存中的key不能写死,动态拼!
一定要注意!
配置文件
动态SQL 例如:
<select id="serchAdmin" parameterType="java.util.Map" resultType="Adminuser">
select * from adminuser
<where>
<if test="adminname != null">
and adminname like concat('%',#{adminname},'%')
</if>
<if test="roleid != null and roleid!= ''">
and roleid = #{roleid}
</if>
</where>
</select>
Controller 里的
@RequestMapping(value="admin/list")
public String list(Model model,String adminname,Integer roleid){
List<Roleinfo> roleList =adminService.getAllRole();
List<Adminuser> list =null;
//条件查询
String key = String.format("admin_%s_%s", adminname,roleid);
list = (List<Adminuser>) MemcachedUtil.get(key);
if(list != null){
System.out.println("从缓存中取数据");
}else{
System.out.println("从数据库中去数据!");
//list=adminService.getAllAdminuser();
list = adminService.serchAdmin(adminname,roleid);
MemcachedUtil.add(key, list, 20000);
}
model.addAttribute("list", list);
model.addAttribute("roleList", roleList);
model.addAttribute("adminname", adminname);
model.addAttribute("roleid", roleid);
return "admin/list";
}
存到缓存中的key不能写死,动态拼!
一定要注意!
相关文章推荐
- 约束条件对于查询优化的作用
- 使用PDF.NET数据开发框架的实体操作语言OQL构造复杂查询条件
- 在HQL中使用单个的模糊查询,以及对于多个查询条件进行查询的话
- ThinkPHP框架五对数据的操作和条件查询
- 【MyBatis框架】查询缓存-二级缓存原理
- tp框架where条件查询数据库
- java开源框架集成常见错误之使用Criteria添加查询条件出现java.lang.ClassCastException异常
- 【hibernate框架】缓存机制之查询缓存
- 应用程序框架实战二十五:查询条件(规约模式应用)
- 【MyBatis框架】查询缓存-二级缓存-整合ehcache
- PHP YII框架学习 按条件查询显示在YII自带的CGridView上
- 【Hibernate框架开发之九】Hibernate 性能优化笔记!(遍历、一级/二级/查询/缓存、乐观悲观锁等优化算法)
- JEECG - 基于代码生成器的J2EE智能开发框架 续四: 查询条件SQL生成器设计思路
- CI框架学习之六 ( 数据库查询缓存优化 )
- hibernate 更改查询条件无效的缓存问题
- 对于Hibernate二级缓存和查询缓存的总结
- 【Hibernate框架开发之九】Hibernate 性能优化笔记!(遍历、一级/二级/查询/缓存/乐观悲观锁等优化算法)
- Yii框架学习CDbCriteria查询条件收集
- 【MyBatis框架】查询缓存-二级缓存原理
- 03_MyBatis基本查询,mapper文件的定义,测试代码的编写,resultMap配置返回值,sql片段配置,select标签标签中的内容介绍,配置使用二级缓存,使用别名的数据类型,条件查询ma