Rumah Java javaTutorial Mybatis映射文件的实例代码详解

Mybatis映射文件的实例代码详解

Mar 09, 2017 am 10:32 AM
mybatis fail pemetaan

这篇文章主要介绍了 Mybatis映射文件实例详解,需要的朋友可以参考下

 一、输入映射

parameterType

指定输入参数的Java类型,可以使用别名或者类的全限定名。它可以接收简单类型、POJO、HashMap。

1、传递简单类型

根据用户ID查询用户信息:

<select id="findUserById" parameterType="int" resultType="com.itheima.mybatis.po.User"> 
  SELECT * FROM USER WHERE id =#{id} 
</select>
Salin selepas log masuk

2、传递POJO对象

添加用户:

<insert id="insertUser" parameterType="com.itheima.mybatis.po.User"> 
  <selectKey keyProperty="id" resultType="int" order="AFTER"> 
   SELECT LAST_INSERT_ID() 
  </selectKey> 
  INSERT INTO USER(username,birthday,sex,address) VALUES(#{username},#{birthday},#{sex},#{address}) 
</insert>
Salin selepas log masuk

3、传递POJO包装对象

开发中通过pojo传递查询条件 ,查询条件是综合的查询条件,不仅包括用户查询条件还包括其它的查询条件(比如将用户购买商品信息也作为查询条件),
这时可以使用包装对象传递输入参数。

3.1需求

综合查询用户信息,需要传入查询条件复杂,比如(用户信息、订单信息、商品信息)。

3.2 定义包装对象

一般User.java类要和数据表表字段一致,最好不要在这里面添加其他字段,在mybatis的逆向工程时,会根据表结构,生成po类,

如果在po类中扩展字段,此时会被覆盖掉。

所以针对要扩展的po类,我们需要创建一个扩展类,来继承它。

public class UserExt extends User{ 
 //这里可以定义user的一些扩展信息 
}
Salin selepas log masuk

定义POJO包装类:

public class UserQueryVO { 
 //用户信息 
 private UserExt userExt; 
 //商品ID集合 
 private List<Integer> idList; 
 //商品信息 
 public List<Integer> getIdList() { 
  return idList; 
 } 
 public void setIdList(List<Integer> idList) { 
  this.idList = idList; 
 } 
 public UserExt getUserExt() { 
  return userExt; 
 } 
 public void setUserExt(UserExt userExt) { 
  this.userExt = userExt; 
 } 
 //订单信息 
}
Salin selepas log masuk

3.3编写Mapper接口

//通过包装类来进行复杂的用户信息综合查询
public List findUserList(UserQueryVO userQueryVO);

3.4编写mapper映射文件

<!-- 通过包装类来进行复杂的用户信息综合查询 --> 
<select id="findUserList" parameterType="userQueryVO" resultType="userExt"> 
  SELECT * FROM USER WHERE sex=#{userExt.sex} AND username LIKE &#39;%${userExt.username}%&#39; 
</select>
Salin selepas log masuk

注意:入参的类型变为UserQueryVO、结果集的类型变为UserExt,#{}里面的参数变为UserQueryVO对象中的userExt属性的sex和username子属性。

3.5编写测试代码

@Test 
public void findUserListTest() { 
 // 创建SqlSession 
 SqlSession sqlSession = sqlSessionFactory.openSession(); 
 // 通过SqlSession,获取mapper接口的动态代理对象 
 UserMapper userMapper = sqlSession.getMapper(UserMapper.class); 
 //构造userQueryVO对象 
 UserQueryVO userQueryVO = new UserQueryVO(); 
 // 构造UserExt对象 
 UserExt userExt = new UserExt(); 
 userExt.setSex("1"); 
 userExt.setUsername("小明"); 
 userQueryVO.setUserExt(userExt); 
 // 调用mapper对象的方法 
 List<UserExt> list = userMapper.findUserList(userQueryVO); 
 System.out.println(list); 
 // 关闭SqlSession 
 sqlSession.close(); 
}
Salin selepas log masuk

4、传递HashMap

同传递POJO对象一样,map的key相当于pojo的属性。

4.1映射文件

<!-- 传递hashmap综合查询用户信息 --> 
 <select id="findUserByHashmap" parameterType="hashmap" resultType="user"> 
  select * from user where id=#{<span style="color:#ff0000;">id</span>} and username like &#39;%${<span style="color:#ff0000;">username</span>}%&#39; 
 </select>
Salin selepas log masuk

上边红色标注的id和username是hashmap的key。

4.2测试代码

Public void testFindUserByHashmap()throws Exception{ 
  //获取session 
  SqlSession session = sqlSessionFactory.openSession(); 
  //获限mapper接口实例 
  UserMapper userMapper = session.getMapper(UserMapper.class); 
  //构造查询条件Hashmap对象 
  HashMap<String, Object> map = new HashMap<String, Object>(); 
  map.put("id", 1); 
  map.put("username", "管理员"); 
   
  //传递Hashmap对象查询用户列表 
  List<User>list = userMapper.findUserByHashmap(map); 
  //关闭session 
  session.close(); 
 }
Salin selepas log masuk

异常测试:

传递的map中的key和sql中解析的key不一致。

测试结果没有报错,只是通过key获取值为空。

二、输出映射

1、resultType

(1)使用方法

使用resultType进行结果映射时,查询的列名和映射的pojo属性名完全一致,该列才能映射成功。

如果查询的列名和映射的pojo属性名全部不一致,那么映射的对象为空,不会创建pojo对象;

如果查询的列名和映射的pojo属性名有一个一致,那么映射的对象不为空,会创建pojo对象,但是只有映射正确的那一个属性才有值。

(2)输出简单类型

注意,对简单类型的结果映射也是有要求的,查询的列必须是一列,才能映射为简单类型。

当输出结果只有一列时,可以使用ResultType指定简单类型作为输出结果类型。

2.1需求

综合查询用户总数,需要传入查询条件复杂,比如(用户信息、订单信息、商品信息)。

2.2Mapper映射文件

<!-- 综合查询用户信息总数,需要传入查询条件复杂,比如(用户信息、订单信息、商品信息) --> 
<select id="findUsersCount" parameterType="UserQueryVO" 
  resultType="int"> 
  SELECT count(1) FROM USER WHERE sex = #{userExt.sex} AND username LIKE &#39;%${userExt.username}%&#39; 
</select>
Salin selepas log masuk

2.3Mapper接口

//综合查询用户信息总数。学习:resultType输出简单类型 
public int findUsersCount(UserQueryVO vo);
Salin selepas log masuk

2.4测试代码

@Test 
public void testFindUsersCount() { 
 // 创建SqlSession 
 SqlSession sqlSession = sqlSessionFactory.openSession(); 
 // 通过SqlSession,获取mapper接口的动态代理对象 
 UserMapper userMapper = sqlSession.getMapper(UserMapper.class); 
 //构造userQueryVO对象 
 UserQueryVO userQueryVO = new UserQueryVO(); 
 // 构造UserExt对象 
 UserExt userExt = new UserExt(); 
 userExt.setSex("1"); 
 userExt.setUsername("小明"); 
 userQueryVO.setUserExt(userExt); 
 int count = mapper.findUsersCount(userQueryVO); 
 System.out.println(count); // 关闭SqlSession 
 sqlSession.close(); 
}
Salin selepas log masuk

(3)输出POJO单个对象和列表

注意:输出单个pojo对象和pojo列表(盛放pojo对象)时,mapper映射文件中的resultType的类型是一样的,mapper接口的方法返回值不同。

3.1Mapper映射文件

<select id="findUsersByName" parameterType="java.lang.String" resultType="cn.itcast.mybatis.po.User"> 
  SELECT * FROM USER WHERE username LIKE &#39;%${value}%&#39; 
</select>
Salin selepas log masuk

3.2Mapper接口

1、输出单个pojo对象

//根据用户名称来模糊查询用户信息 
 public User findUsersByName(String username);
Salin selepas log masuk

2、输出pojo列表

//根据用户名称来模糊查询用户信息列表 
 public List<User> findUsersByName(String username);
Salin selepas log masuk

总结:同样的mapper映射文件,返回单个对象和对象列表时,mapper接口在生成动态代理的时候,

会根据返回值的类型,决定调用selectOne方法还是selectList方法。

2、resultMap

resultMap可以进行高级结果映射(一对一、一对多映射)。

(1)使用方法

如果查询出来的列名和属性名不一致,通过定义一个resultMap将列名和pojo属性名之间作一个映射关系。

1、 定义resultMap

2、 使用resultMap作为statement的输出映射类型。

(2)需求

把下面SQL的输出结果集进行映射

SELECT id id_,username username_,sex sex_FROM USER WHERE id = 1
Salin selepas log masuk

(3)Mapper映射文件

定义resultMap:

<!-- 定义resultMap --> 
<!-- 
 [id]:定义resultMap的唯一标识 
 [type]:定义该resultMap最终映射的pojo对象 
 [id标签]:映射结果集的唯一标识列,如果是多个字段联合唯一,则定义多个id标签 
 [result标签]:映射结果集的普通列 
 [column]:SQL查询的列名,如果列有别名,则该处填写别名 
 [property]:pojo对象的属性名 
--> 
<resultMap type="user" id="userResultMap"> 
 <id column="id_" property="id"/> 
 <result column="username_" property="username"/> 
 <result column="sex_" property="sex"/> 
</resultMap>
Salin selepas log masuk

定义statement:

<!-- 根据ID查询用户信息(学习resultMap) --> 
<select id="findUserByIdResultMap" parameterType="int" resultMap="userResultMap"> 
  SELECT id id_,username username_,sex sex_ FROM USER WHERE id = #{id} 
</select>
Salin selepas log masuk

(4)Mapper接口定义

 //根据ID查询用户信息(学习resultMap) 
 public User findUserByIdResultMap(int id);<strong> 
</strong>
Salin selepas log masuk

定义Statement使用resultMap映射结果集时,Mapper接口定义方法的返回值类型为mapper映射文件中resultMap的type类型。

(5)测试代码

@Test 
public void findUserByIdResultMapTest() { 
 // 创建SqlSession 
 SqlSession sqlSession = sqlSessionFactory.openSession(); 
 // 通过SqlSession,获取mapper接口的动态代理对象 
 UserMapper userMapper = sqlSession.getMapper(UserMapper.class); 
 // 调用mapper对象的方法 
 User user = userMapper.findUserByIdResultMap(1); 
 System.out.println(user); 
 // 关闭SqlSession 
 sqlSession.close(); 
}
Salin selepas log masuk

三、动态SQL

1、If和where

Ø If标签:作为判断入参来使用的,如果符合条件,则把if标签体内的SQL拼接上。
注意:用if进行判断是否为空时,不仅要判断null,也要判断空字符串‘';
Ø Where标签:会去掉条件中的第一个and符号。

(1)需求

用户信息综合查询列表和用户信息综合查询总数这两个statement的定义使用动态SQL。

(2)映射文件

<!-- 综合查询用户信息,需要传入查询条件复杂,比如(用户信息、订单信息、商品信息) --> 
<select id="findUsersByQueryVO" parameterType="cn.itcast.mybatis.po.QueryUserVO" 
  resultType="User"> 
  SELECT * FROM USER 
 <where> 
  <if test="userExt != null"> 
   <if test="userExt.sex != null and userExt.sex != &#39;&#39;"> 
    AND sex = #{userExt.sex} 
   </if> 
   <if test="userExt.username != null and userExt.username != &#39;&#39;"> 
    AND username LIKE &#39;%${userExt.username}%&#39; 
   </if> 
  </if> 
 </where> 
</select> 
<!-- 综合查询用户信息总数,需要传入查询条件复杂,比如(用户信息、订单信息、商品信息) --> 
<select id="findUsersCount" parameterType="QueryUserVO" 
  resultType="int"> 
 SELECT count(1) FROM USER 
 <where> 
  <if test="userExt != null"> 
   <if test="userExt.sex != null and userExt.sex != &#39;&#39;"> 
    AND sex = #{userExt.sex} 
   </if> 
   <if test="userExt.username != null and userExt.username != &#39;&#39;"> 
    AND username LIKE &#39;%${userExt.username}%&#39; 
   </if> 
  </if> 
 </where> 
</select>
Salin selepas log masuk

(3)Mapper接口

//通过包装类来进行复杂的用户信息综合查询 
public List<UserExt> findUserList(UserQueryVO userQueryVO); 
//综合查询用户总数 
public int findUsersCount(UserQueryVO userQueryVO);
Salin selepas log masuk

(4)测试代码

不传用户名:

@Test 
 public void testFindUserList() throws Exception{ 
  // 创建UserMapper对象 
  SqlSession sqlSession = sqlSessionFactory.openSession(); 
  // 由mybatis通过sqlsession来创建代理对象 
  UserMapper mapper = sqlSession.getMapper(UserMapper.class); 
  QueryUserVO vo = new QueryUserVO(); 
  User user = new User(); 
  //此处使用动态SQL,不传username参数 
  user.setSex("1"); 
//  user.setUsername("小明"); 
  vo.setUser(user); 
  List<User> list = mapper.findUserList(vo); 
  System.out.println(user); 
  sqlSession.close(); 
 }
Salin selepas log masuk

输出的SQL如下(也不包含用户名):

通过测试可以得知,打印出的SQL语句确实会随着条件的满足情况而不一样。

2、SQL片段

Mybatis提供了SQL片段的功能,可以提高SQL的可重用性。

2.1定义SQL片段

使用sql标签来定义一个SQL片段:

<!-- 定义SQL片段 --> 
<!-- 
 [sql标签]:定义一个SQL片段 
 [id]:SQL片段的唯一标识 
 建议: 
  1、SQL片段中的内容最好是以单表来定义 
  2、如果是查询字段,则不要写上SELECT 
  3、如果是条件语句,则不要写上WHERE 
 --> 
<sql id="select_user_where"> 
 <if test="userExt != null"> 
  <if test="userExt.sex != null and userExt.sex != &#39;&#39;"> 
   AND sex = #{userExt.sex} 
  </if> 
  <if test="userExt.username != null and userExt.username != &#39;&#39;"> 
   AND username LIKE &#39;%${userExt.username}%&#39; 
  </if> 
 </if> 
</sql>
Salin selepas log masuk

2.2引用SQL片段

使用 来引用SQL片段:

<!-- 根据用户id来查询用户信息(使用SQL片段) --> 
<!-- 
 [include标签]:引用已经定义好的SQL片段 
 [refid]:引用的SQL片段id 
--> 
<select id="findUserList" parameterType="userQueryVO" resultType="userExt"> 
 SELECT * FROM USER 
<where> 
  <include refid="select_user_where"/> 
 </where> 
</select> 
<!-- 综合查询用户信息总数,需要传入查询条件复杂,比如(用户信息、订单信息、商品信息) --> 
<select id="findUsersCount" parameterType="QueryUserVO" 
  resultType="int"> 
 SELECT count(1) FROM USER 
 <where> 
  <include refid="select_user_where"/> 
 </where> 
</select>
Salin selepas log masuk

3、foreach

向sql传递数组或List时,mybatis使用foreach解析数组里的参数并拼接到SQL中。

(1)传递pojo对象中的list集合

1.1需求

在用户查询列表和查询总数的statement中增加多个id输入查询。

1.2SQL

SELECT * FROM user WHERE id IN (1,10,16)
Salin selepas log masuk
Salin selepas log masuk

1.3定义pojo中的list属性

package com.itheima.mybatis.po; 
import java.util.List; 
/** 
 * <p>Title: UserQueryVO</p> 
 * <p>Description: TODO(这里用一句话描述这个类的作用) <p> 
 */ 
public class UserQueryVO { 
 //用户信息 
 private UserExt userExt; 
 //商品ID集合 
 private List<Integer> idList; 
 //商品信息 
 public List<Integer> getIdList() { 
  return idList; 
 } 
 public void setIdList(List<Integer> idList) { 
  this.idList = idList; 
 } 
 public UserExt getUserExt() { 
  return UserExt; 
 } 
 public void setUserExt(UserExt userExt) { 
  this.UserExt = UserExt; 
 } 
 //订单信息 
}
Salin selepas log masuk

1.4映射文件

<!-- [foreach标签]:表示一个foreach循环 --> 
<!-- [collection]:集合参数的名称,如果是直接传入集合参数,则该处的参数名称只能填写[list]。 --> 
<!-- [item]:每次遍历出来的对象 --> 
<!-- [open]:开始遍历时拼接的串 --> 
<!-- [close]:结束遍历时拼接的串 --> 
<!-- [separator]:遍历出的每个对象之间需要拼接的字符 --> 
<if test="idList != null and idList.size > 0"> 
<foreach collection="idList" item="id" open="AND id IN (" close=")" separator=","> 
  #{id} 
</foreach> 
</if>
Salin selepas log masuk

1.5Mapper接口

//根据用户ID的集合查询用户列表(学习foreach标签之通过POJO对象传ID集合) 
public List<UserExt> findUserList(UserQueryVO vo);
Salin selepas log masuk

1.6测试代码

@Test 
public void testFindUserList() { 
  // 创建SqlSession 
  SqlSession sqlSession = sqlSessionFactory.openSession(); 
  // 通过SqlSession,获取mapper接口的动态代理对象 
  UserMapper mapper = sqlSession.getMapper(UserMapper.class); 
  // 构造QueryUserVO对象 
  QueryUserVO vo = new QueryUserVO(); 
  // UserExt ext = new UserExt(); 
  // ext.setUsername("小明"); 
  // ext.setSex("1"); 
  // vo.setUserExt(ext); 
  // 创建用户ID集合,然后设置到QueryUserVO对象中 
  List<Integer> idList = new ArrayList<Integer>(); 
  idList.add(1); 
  idList.add(10); 
  idList.add(16); 
  vo.setIdList(idList); 
  // 调用mapper代理对象的方法 
  List<UserExt> list = mapper.findUserList(vo); 
  System.out.println(list); 
  // 关闭SqlSession 
  sqlSession.close(); 
}
Salin selepas log masuk

(2)直接传递List集合

2.1需求

根据用户ID的集合查询用户列表

2.2SQL

SELECT * FROM user WHERE id IN (1,10,16)
Salin selepas log masuk
Salin selepas log masuk

2.3映射文件

<!-- 根据用户ID的集合查询用户列表(学习foreach标签之直接传ID集合) --> 
<!--  
  [foreach标签]:表示一个foreach循环 
  [collection]:集合参数的名称,如果是直接传入集合参数,则该处的参数名称只能填写[list]。 
  [item]:定义遍历集合之后的参数名称 
  [open]:开始遍历之前需要拼接的SQL串 
  [close]:结束遍历之后需要拼接的SQL串 
  [separator]:遍历出的每个对象之间需要拼接的字符 
 --> 
<select id="findUsersByIdList" parameterType="java.util.List" resultType="user"> 
  SELECT * FROM USER 
  <where> 
    <if test="list != null and list.size > 0"> 
      <foreach collection="list" item="id" open="AND id IN (" close=")" separator=","> 
        #{id} 
      </foreach> 
    </if> 
  </where> 
</select>
Salin selepas log masuk

2.4Mapper接口

//根据用户ID的集合查询用户列表(学习foreach标签之直接传ID集合) 
public List<User> findUsersByIdList (List<Integer> idList);
Salin selepas log masuk

2.5测试代码

@Test 
public void findUsersByIdListTest() { 
  // 创建SqlSession 
  SqlSession sqlSession = sqlSessionFactory.openSession(); 
  // 通过SqlSession,获取mapper接口的动态代理对象 
  UserMapper userMapper = sqlSession.getMapper(UserMapper.class); 
  // 构造List<Integer>集合 
  List<Integer> idList = new ArrayList<Integer>(); 
  idList.add(1); 
  idList.add(10); 
    idList.add(16); 
  // 调用mapper对象的方法 
  List<User> list = userMapper.findUsersByIdList (idList); 
  System.out.println(list); 
  // 关闭SqlSession 
  sqlSession.close(); 
}
Salin selepas log masuk


Atas ialah kandungan terperinci Mybatis映射文件的实例代码详解. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn

Alat AI Hot

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

AI Hentai Generator

AI Hentai Generator

Menjana ai hentai secara percuma.

Artikel Panas

Repo: Cara menghidupkan semula rakan sepasukan
1 bulan yang lalu By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Kristal tenaga dijelaskan dan apa yang mereka lakukan (kristal kuning)
2 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island Adventure: Cara mendapatkan biji gergasi
1 bulan yang lalu By 尊渡假赌尊渡假赌尊渡假赌

Alat panas

Notepad++7.3.1

Notepad++7.3.1

Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina

SublimeText3 versi Cina

Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1

Hantar Studio 13.0.1

Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6

Dreamweaver CS6

Alat pembangunan web visual

SublimeText3 versi Mac

SublimeText3 versi Mac

Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

iBatis vs. MyBatis: Mana satu yang lebih baik untuk anda? iBatis vs. MyBatis: Mana satu yang lebih baik untuk anda? Feb 19, 2024 pm 04:38 PM

iBatis vs. MyBatis: Mana yang patut anda pilih? Pengenalan: Dengan perkembangan pesat bahasa Java, banyak rangka kerja kegigihan telah muncul. iBatis dan MyBatis ialah dua rangka kerja kegigihan yang popular, kedua-duanya menyediakan penyelesaian capaian data yang mudah dan cekap. Artikel ini akan memperkenalkan ciri dan kelebihan iBatis dan MyBatis, dan memberikan beberapa contoh kod khusus untuk membantu anda memilih rangka kerja yang sesuai. Pengenalan kepada iBatis: iBatis ialah rangka kerja kegigihan sumber terbuka

Pelbagai cara untuk melaksanakan operasi pemadaman kelompok dalam MyBatis Pelbagai cara untuk melaksanakan operasi pemadaman kelompok dalam MyBatis Feb 19, 2024 pm 07:31 PM

Beberapa cara untuk melaksanakan pernyataan pemadaman kelompok dalam MyBatis memerlukan contoh kod khusus Dalam beberapa tahun kebelakangan ini, disebabkan oleh peningkatan jumlah data, operasi kelompok telah menjadi bahagian penting dalam operasi pangkalan data. Dalam pembangunan sebenar, kita selalunya perlu memadamkan rekod dalam pangkalan data secara berkelompok. Artikel ini akan menumpukan pada beberapa cara untuk melaksanakan pernyataan padam kelompok dalam MyBatis dan memberikan contoh kod yang sepadan. Gunakan teg foreach untuk melaksanakan pemadaman kelompok MyBatis menyediakan teg foreach, yang boleh melintasi set dengan mudah.

Penjelasan terperinci tentang fungsi Set tag dalam teg SQL dinamik MyBatis Penjelasan terperinci tentang fungsi Set tag dalam teg SQL dinamik MyBatis Feb 26, 2024 pm 07:48 PM

Tafsiran teg SQL dinamik MyBatis: Penjelasan terperinci tentang penggunaan teg Set MyBatis ialah rangka kerja lapisan kegigihan yang sangat baik Ia menyediakan banyak teg SQL dinamik dan boleh membina pernyataan operasi pangkalan data secara fleksibel. Antaranya, tag Set ialah tag yang digunakan untuk menjana klausa SET dalam kenyataan UPDATE, yang sangat biasa digunakan dalam operasi kemas kini. Artikel ini akan menerangkan secara terperinci penggunaan teg Set dalam MyBatis dan menunjukkan kefungsiannya melalui contoh kod tertentu. Apakah itu Set tag Set tag digunakan dalam MyBati

Analisis perbandingan fungsi dan prestasi JPA dan MyBatis Analisis perbandingan fungsi dan prestasi JPA dan MyBatis Feb 19, 2024 pm 05:43 PM

JPA dan MyBatis: Analisis Perbandingan Fungsi dan Prestasi Pengenalan: Dalam pembangunan Java, rangka kerja kegigihan memainkan peranan yang sangat penting. Rangka kerja kegigihan biasa termasuk JPA (JavaPersistenceAPI) dan MyBatis. Artikel ini akan menjalankan analisis perbandingan fungsi dan prestasi kedua-dua rangka kerja dan menyediakan contoh kod khusus. 1. Perbandingan fungsi: JPA: JPA ialah sebahagian daripada JavaEE dan menyediakan penyelesaian kegigihan data berorientasikan objek. Ia diluluskan anotasi atau X

Penjelasan terperinci tentang cara menggunakan penyata pemadaman kumpulan MyBatis Penjelasan terperinci tentang cara menggunakan penyata pemadaman kumpulan MyBatis Feb 20, 2024 am 08:31 AM

Penjelasan terperinci tentang cara menggunakan pernyataan pemadaman kumpulan MyBatis memerlukan contoh kod khusus Pengenalan: MyBatis ialah rangka kerja lapisan kegigihan yang sangat baik yang menyediakan fungsi operasi SQL yang kaya. Dalam pembangunan projek sebenar, kami sering menghadapi situasi di mana data perlu dipadamkan dalam kelompok. Artikel ini akan memperkenalkan secara terperinci cara menggunakan pernyataan pemadaman kumpulan MyBatis, dan melampirkan contoh kod tertentu. Senario penggunaan: Apabila memadamkan sejumlah besar data dalam pangkalan data, adalah tidak cekap untuk melaksanakan kenyataan padam satu demi satu. Pada ketika ini, anda boleh menggunakan fungsi pemadaman kelompok MyBatis

Penjelasan terperinci tentang cache peringkat pertama MyBatis: Bagaimana untuk meningkatkan kecekapan capaian data? Penjelasan terperinci tentang cache peringkat pertama MyBatis: Bagaimana untuk meningkatkan kecekapan capaian data? Feb 23, 2024 pm 08:13 PM

Penjelasan terperinci tentang cache peringkat pertama MyBatis: Bagaimana untuk meningkatkan kecekapan capaian data? Semasa proses pembangunan, capaian data yang cekap sentiasa menjadi salah satu fokus pengaturcara. Untuk rangka kerja lapisan kegigihan seperti MyBatis, caching ialah salah satu kaedah utama untuk meningkatkan kecekapan capaian data. MyBatis menyediakan dua mekanisme caching: cache peringkat pertama dan cache peringkat kedua. Cache peringkat pertama didayakan secara lalai. Artikel ini akan memperkenalkan mekanisme cache peringkat pertama MyBatis secara terperinci dan menyediakan contoh kod khusus untuk membantu pembaca memahami dengan lebih baik.

Pentafsiran parameter konfigurasi MyBatis Generator dan amalan terbaik Pentafsiran parameter konfigurasi MyBatis Generator dan amalan terbaik Feb 23, 2024 am 09:51 AM

MyBatisGenerator ialah alat penjanaan kod yang disediakan secara rasmi oleh MyBatis, yang boleh membantu pembangun menjana JavaBeans, antara muka Mapper dan fail pemetaan XML dengan pantas yang mematuhi struktur jadual pangkalan data. Dalam proses menggunakan MyBatisGenerator untuk penjanaan kod, penetapan parameter konfigurasi adalah penting. Artikel ini akan bermula dari perspektif parameter konfigurasi dan meneroka secara mendalam fungsi MyBatisGenerator.

Penjelasan terperinci tentang konfigurasi pertanyaan satu-ke-banyak MyBatis: menyelesaikan masalah pertanyaan berkaitan biasa Penjelasan terperinci tentang konfigurasi pertanyaan satu-ke-banyak MyBatis: menyelesaikan masalah pertanyaan berkaitan biasa Feb 22, 2024 pm 02:18 PM

Penjelasan terperinci tentang konfigurasi pertanyaan satu-ke-banyak MyBatis: Untuk menyelesaikan masalah pertanyaan biasa yang berkaitan, contoh kod khusus diperlukan Dalam kerja pembangunan sebenar, kita sering menghadapi situasi di mana kita perlu menanyakan objek entiti utama dan objek entiti hamba berbilang yang berkaitan. . Dalam MyBatis, pertanyaan satu-ke-banyak ialah pertanyaan perkaitan pangkalan data biasa Dengan konfigurasi yang betul, pertanyaan, paparan dan pengendalian objek yang berkaitan boleh direalisasikan dengan mudah. Artikel ini akan memperkenalkan kaedah konfigurasi pertanyaan satu-ke-banyak dalam MyBatis, dan cara menyelesaikan beberapa masalah pertanyaan biasa yang berkaitan

See all articles