mybatisコア構成と2次キャッシュ

1.レベル1とレベル2のキャッシュ(レベル2が推奨、レベル1はデフォルトで有効、レベル2は構成)

 

 

2次キャッシュをオンにする方法は、3つのステップに分かれています。

1つは、構成ファイルで開くことです。これは、2次キャッシュを開くメインスイッチです。デフォルトは開いています。

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

2つ目は、マッパーファイルのキャッシュを有効にする方法で、デフォルトでは無効になっています。手動で有効にする必要があります。

<!-Mapperファイルごとに1つのキャッシュオブジェクトを使用-> 
<cache />

<!-複数のMapperファイルがキャッシュオブジェクトを共有する場合->
<cache-ref />

3つ目は、クエリを実行するステートメントにキャッシュを使用することです。つまり、<select>ノードで次の属性を構成します。

useCache = "true"

二次キャッシュには次の指示があります。

  • マッピングステートメントファイル内のすべての選択ステートメントがキャッシュされます。
  • マッピングステートメントファイル内のすべての挿入、更新、削除ステートメントは、キャッシュを更新します。
  • キャッシュは、最近使用されていない(LRU)アルゴリズムを使用して回復されます。
  • スケジュール(フラッシュ間隔なし、更新間隔なしなど)に従って、キャッシュは発生順に更新されません。
  • キャッシュには、リストのコレクションまたはオブジェクトへの1024の参照が格納されます(queryメソッドが返すものに関係なく)。
  • キャッシュは読み取り/書き込みキャッシュと見なされます。つまり、オブジェクトの取得は共有されず、他の呼び出し元やスレッドによる潜在的な変更を妨げることなく、呼び出し元が安全に変更できます。

2.エイリアスを取得するデフォルトは小文字のクラスの名前です

 

 3。

 

 

 

 

4.結果マップのマッピング

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(); } 

 

 代わりに次の方法を使用することもできます

 

おすすめ

転載: www.cnblogs.com/zbf-1998/p/12692836.html