mybatis 核心配置 和 二級緩存


1.一級二級緩存(優先用二級 ,一級默認開啟,二級要去配置)

 

 

如何開啟二級緩存,分三步:

一是在配置文件中開啟,這是開啟二級緩存的總開關,默認是開啟狀態的:

<setting name="cacheEnabled" value="true"/>

二是在Mapper文件中開啟緩存,默認是不開啟的,需要手動開啟:

<!-- 每個Mapper文件使用一個緩存對象 -->
<cache/>

<!-- 如果是多個Mapper文件共用一個緩存對象 -->
<cache-ref />

三是針對要查詢的statement使用緩存,即在<select>節點中配置如下屬性:

useCache="true"

對於二級緩存有以下說明:

  • 映射語句文件中的所有 select 語句將會被緩存。
  • 映射語句文件中的所有 insert,update 和 delete 語句會刷新緩存。
  • 緩存會使用 Least Recently Used(LRU,最近最少使用的)算法來收回。
  • 根據時間表(比如 no Flush Interval,沒有刷新間隔), 緩存不會以任何時間順序 來刷新。
  • 緩存會存儲列表集合或對象(無論查詢方法返回什么)的 1024 個引用。
  • 緩存會被視為是 read/write(可讀/可寫)的緩存,意味着對象檢索不是共享的,而 且可以安全地被調用者修改,而不干擾其他調用者或線程所做的潛在修改。

2..取別名  默認的是類的名字小寫

 

 3.

 

 

 

 

4.resultmap映射

resultMap>元素使用案例:
1.新建數據表t_user,插入測試數據。

use mybatis create table t_user( t_id int identity(1,1) PRIMARY key, t_name varchar(50), t_age int ) insert into t_user values ('lulu','23'); insert into t_user values ('lili','25'); insert into t_user values ('jiji','18'); 

2.新建持久化類User,並定義屬性。


/** * @author mz * @version V1.0 * @Description: 用戶實體類 * @create 2017-11-01 14:13 */ public class User { private Integer id; private String name; private Integer age; //省略setter和getter方法 } 

3.創建UserMapper.xml,編寫映射查詢語句。

<?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> <mapper namespace="com.itheima.mapper.UserMapper"> <resultMap id="resultMap" type="com.itheima.po.User"> <!--<id>和<result>的property屬性表示User類的屬性名,column屬性表示數據表t_user的列名。--> <id property="id" column="t_id"/> <result property="name" column="t_name"/> <result property="age" column="t_age"/> </resultMap> <select id="findAllUser" resultMap="resultMap"> <!--<select>元素的resultMap屬性表示引用上面定義的resultMap--> select * from t_user </select> </mapper> 

4.在配置文件mybatis-config中,引入UserMapper.xml,並編寫測試方法

<!--配置mapper的位置--> <mappers> <mapper resource="com/itheima/mapper/CustomerMapper.xml"/> <mapper resource="com/itheima/mapper/UserMapper.xml"/> </mappers> 
@Test public void findAllUserTest() { //獲取SqlSession SqlSession sqlSession = MybatisUtils.getSession(); //執行映射文件中定義的SQL,並返回結果 List<User> list = sqlSession.selectList("com.itheima.mapper.UserMapper.findAllUser"); for (User user : list) { System.out.println(user); } //關閉SqlSession sqlSession.close(); } 

 

 也可用以下方法替代

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM