【servlet+mybatis实现一个仓库管理系统】之mybatis手记

来源:互联网 发布:软件开发的课程 编辑:程序博客网 时间:2024/05/21 14:06

废话就不说了,主要是对mybatis的内存优化的笔记
图片描述

截图中显示已经很清楚了
<cache size="1024" flushInterval="60000" eviction="LRU" readOnly="false "/>
1.size:表示cache中能容纳的最大元素数。默认是1024
2.flushInterval:定义缓存刷新周期,以毫秒计
3.eviction:定义缓存的移除机制;默认是LRU(least recently used, 最近最少使用)另外还有FIFO(first in first out 先进先出)
4.readOnly:默认是false,假如是true,缓存只能是读
mybatis这里的内存优化在处理一些高并发的程序中作用比较大,而小项目中并不能体现出其价值(不过我也没用到,毕竟做的还是单用户)。


这里在介绍一下mybatis的分页:
1.逻辑分页(实际开发中并没什么卵用,那为什么介绍呢?我也是刚学到)
Mapper中的接口:

//逻辑分页    public List<User> findUsers(RowBounds rowBounds);

接口的实现;

<select id="findUsers" resultMap="userResult">    SELECT * FROM user_tab</select>

结果展示:
图片描述

上述的方法是一个逻辑上的实现,也就是只能显示第一页,但是第二页查起来就没那么简单了

2.物理分页
Mapper中的接口:

//物理分页    public List<User> findUser(Map<String, Object> map);

接口实现:

<select id="findUser" parameterType="Map" resultMap="userResult">    SELECT * FROM user_tab    <if test="start != null and size != null">        limit #{start}, #{size}    </if></select>
    /**     * 物理分页查询     */    @Test    public void testFindUser() {        logger.info("查询学生(物理分页)");        Map<String, Object> map = new HashMap<String, Object>();        map.put("start", 0);        map.put("size", 3);        List<User> list = userMapper.findUser(map);        for(User user:list){            System.out.println(user);        }(<a href="http://www.dztcsd.com/">资质代办</a>)    }

两者的不同之处主要是体现在这里,传进去的参数是不同的,逻辑分页里面是mybatis的参数,分页起始点和每页的数据量都已经固定(个人见解,望指正)。而逻辑分页是根据传入参数可以将数据进行分页(start是起始位置,size则是截断数量,修改start的值就可以实现分页)


作者: SundayCafe 
来源:慕课网
本文原创发布于慕课网 ,转载请注明出处,谢谢合作!
0 0
原创粉丝点击