MyBatis学习1

resultMap

简介:

当您在 MyBatis 中使用 <resultMap> 时,它允许您定义一个复杂的结果映射策略,将数据库查询结果映射到 Java 对象。以下是 <resultMap> 的一些关键特性和用法:

  1. 映射结果集

    • <resultMap> 允许您将 SQL 查询的结果集列映射到 Java 对象的属性。
  2. 类型安全

    • 通过使用 <resultMap>,您可以确保类型安全,因为 MyBatis 会自动处理从数据库列到 Java 对象属性的转换。
  3. 复杂映射

    • <resultMap> 支持复杂的映射需求,例如关联查询和嵌套查询。
  4. 提高性能

    • 使用 <resultMap> 可以提高性能,因为它允许 MyBatis 重用预先配置的映射规则。
  5. 扩展性

    • <resultMap> 可以继承其他 <resultMap>,实现映射规则的重用和扩展。
  6. 配置方式

    • <resultMap> 通常在 MyBatis 的映射 XML 文件中定义。
  7. id 属性

    • 每个 <resultMap> 必须有一个唯一的 id 属性,用于标识这个映射规则。
  8. result 元素

    • <resultMap> 内部使用 <result> 元素来指定列到属性的映射。
  9. association 元素

    • 使用 <association> 元素来映射关联查询的结果,例如一对一关系。
  10. collection 元素

    • 使用 <collection> 元素来映射集合查询的结果,例如一对多或多对多关系。
  11. discriminator 元素

    • 使用 <discriminator> 元素来实现基于某列值的区分映射,常用于处理继承或多表查

使用举例

Where标签

在MyBatis中,<where> 标签用于动态构造SQL语句的WHERE子句。它允许你在映射文件中定义条件,这些条件可以包含在SQL语句中,并且可以通过MyBatis的脚本特性进行动态拼接。

以下是 <where> 标签的一些关键用法:

  1. 动态SQL

    • <where> 标签可以与 <if><choose><when><otherwise> 等子标签一起使用,实现条件语句的动态拼接。
  2. 条件过滤

    • 通常用于根据传递给查询方法的参数动态构造WHERE子句的条件。
  3. 嵌套使用

    • <where> 标签可以包含其他 <where> 或条件标签,以实现更复杂的条件逻辑。

if

when

set

froeach

bind

@Param

缓存机制

缓存的作⽤:通过减少IO的⽅式,来提⾼程序的执⾏效率。

缓存就是指存在内存中的临时数据,使用缓存能够减少和数据库交互的次数,提高效率。将相同查询条件的sql语句执行一遍后得到的结果存在内存或者某种缓存介质中,当下次遇到一模一样的查询sql时候不在执行sql与数据库交互,而是直接从缓存中获取结果,减少服

务器的压力;

mybatis缓存包括:

● ⼀级缓存:将查询到的数据存储到SqlSession中。范围比较小,正对于一次sql会话

● ⼆级缓存:将查询到的数据存储到SqlSessionFactory中。范围比较大,针对于整个数据库级别的。

● 或者集成其它第三⽅的缓存:⽐如EhCache【Java语⾔开发的】、Memcache【C语⾔开发的】等。
缓存只针对于DQL语句,也就是缓存机制只对应select语句。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值