首页 > 代码库 > cached-query 将缓存和查询数据库快速连接起来的轻类库
cached-query 将缓存和查询数据库快速连接起来的轻类库
介绍
我们常常有这样的需求:当我们把memcached加入到项目后我还还要写一个 cacheUtils 或者 cacheManager 之类的类来操作memcached。并且一般的操作不外乎是这种操作:
- 拿到一段sql,先去memcahed里面看下是否有缓存,如果有就直接返回结果
- 如果没有就直接查询数据库
- 查到数据之后先保存到memcached里面再返回给上层调用者
这种需求基本上占了缓存操作的大部分情况。这三件事情写起来很简单,其实还是有一些代码量的。cached-query 是一个轻量级的类库,帮你做了以上三件事情,并且只提供一个方法就是通过sql查询得出一个列表。
安装
添加依赖到 pom.xml
<dependency> <groupId>org.crazycake</groupId> <artifactId>cached-query</artifactId> <version>1.0.0-RELEASE</version> </dependency>
使用方法
建立一个配置文件 cached-query.properties 在classpath跟目录下,你可以放到 src/resources 下
#cache type. [memcached] cache.type=memcached cache.host=127.0.0.1 cache.port=11211 cache.expire=1800
建立你要查询的表对应的model
public class Student implements Serializable{ private Integer studentId; private String studentName; public Integer getStudentId() { return studentId; } public void setStudentId(Integer studentId) { this.studentId = studentId; } public String getStudentName() { return studentName; } public void setStudentName(String studentName) { this.studentName = studentName; } }
在你的代码中使用它
CachedQuery q = CachedQuery.getInstance(); String sql="select student_id,student_name from student where student_id=?"; Object[] params = new Object[]{1}; ArrayList<Student> list = q.queryList(sql, params, conn, Student.class);
注意事项
- 要查询并被实例化的类一定要实现Serializable接口
- 实例化的类里面属性的名字要取跟数据库里面字段对应的驼峰式命名,比如数据库中的字段是 student_name 对应的属性就是 studentName
- 类的属性不能用基本类型,int要用Integer,float用Float,其他依次类推,其实这样开发者养成一个好习惯也是很好的
最新版本情况参考 https://github.com/alexxiyang/cached-query
cached-query 将缓存和查询数据库快速连接起来的轻类库
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。