亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定

【servlet+mybatis實現一個倉庫管理系統】之mybatis手記

標簽:
Java MySQL

废话就不说了,主要是对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);
        }
    }

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

點擊查看更多內容
5人點贊

若覺得本文不錯,就分享一下吧!

評論

作者其他優質文章

正在加載中
感謝您的支持,我會繼續努力的~
掃碼打賞,你說多少就多少
贊賞金額會直接到老師賬戶
支付方式
打開微信掃一掃,即可進行掃碼打賞哦
今天注冊有機會得

100積分直接送

付費專欄免費學

大額優惠券免費領

立即參與 放棄機會
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號

舉報

0/150
提交
取消