一.基本概念
【程序编程相关:Java技巧:在屏幕上定位窗口】 【推荐阅读:如何编写一个JAVA的队列类?】po是持久化对象,它只是对物理数据实体的一种对象表示. 【扩展信息:java基础学习:常用的ant的操作】 vo是值对象,准确地讲,它是业务对象. formbean只是html表单的封装,起到在控制层弱化的request中存储数据的作用,将request的get方法转 变为对象的存取值.二.缓存策略比较
jive
1.jive的缓存策略的过程描述: (1)条件查询的时候,jive用 select id from table_name where …. (只选择id字段)这样的sql语句查询数据库,来获得一个id列表. (2) jive根据id列表中的每个id,首先查看缓存中是否存在对应id的数据对象:如果存在,那么直接取出,加入到 结果列表中;如果不存在,那么通过一条select * from table_name where id = {id value} 这样的sql查询数据库,取出对应的数据对象,放入到结果列表,并把这个数据对象按照id放入到缓存中. (3) id查询的时候,jive执行类似第(2)步的过程,先从缓存中查找该id,查不到,再查询数据库,然后把结果放入到缓存. (4) 删除.更新.增加数据的时候,同时更新缓存. 2.jive缓存策略的优点: (1) id查询的时候,如果该id已经存在于缓存中,那么可以直接取出.节省了一条数据库查询. (2) 当多次条件查询的结果集相交的情况下,交集里面的数据对象不用重复从数据库整个获取,直接从缓存中获取即可.比如,第一次查询的id列表为{1, 2},然后根据id列表的id从数据库中一个一个取出数据对象,结果集为{a(id = 1), b(id = 2)}.下一次查询的id列表为{2, 3},由于id = 2的数据对象已经存在于缓存中,那么只要从数据库中取出id = 3的数据对象即可. 3.jive缓存策略的缺点: (1) 在根据条件查找数据对象列表的过程中,dao的第(1)步用来获得id列表的那一次数据库查询,是必不可少的. (2) 如果第(1)步返回的id列表中有n个id,在最坏的命中率(缓存中一个对应id都没有)情况下,jive还要再查询n次数据库.最坏情况下,共需要n + 1数据库查询. ... 下一页