SQL映射文件详解

SQL映射文件

SQL映射文件中的几个顶级元素介绍:

mapper:SQL 映射文件的根元素。

cache:为给定命名空间配置缓存。

cache-ref:引用其他命名空间中的缓存配置。

resultMap:用来描述查询结果集中的字段和 Java 实体类属性的对应关系。

sql:定义可重用的 SQL 语句块,可以在其他语句映射中引用,提高编写和维护 SQL 语句的效率。

insert:映射 insert 语句。

update:映射 update 语句。

delete:映射 delete 语句。

select:映射 select 语句。

MyBatis 框架支持面向接口的 SQL 映射编程,这种情况下,SQL 映射文件的开发需要注意以下规则:

(1)习惯上,SQL 映射文件与该 Mapper 接口同名(实体类名+ Mapper ),并放置在同一包路径下。

(2)以要映射的 Mapper 接口的完全限定名()即包含包名的完整名称)作为 namespace 属性的值。

(3)接口中的方法名与映射文件中 SQL 语句映射的 ID 一 一对应。MyBatis 框架通过 namespace + ID 确定和接口方法绑定的 SQL 语句。

(4)在不同的 SQL 映射文件中,子元素的 ID 可以相同。

MyBaits 多参数入参的几种方式:

1.将查询条件装成 Java 对象作为入参
2.将查询条件封装成 Map 对象作为入参
3.使用 @Param 注解实现多参数入参

嵌套结果映射

1. association 元素的主要属性:

property:实体类中用来映射查询结果子集的属性。

javaType:proprty 指定的集合属性中的元素的数据类型,可以使用 Java 完全限定类名或别名。

association 元素包含以下子元素

id。

result。

2.collection 元素的常用属性:

property:实体类中用来映射查询结果子集的集合属性。

ofType:property 指定的集合属性中的元素的数据类型,可以使用Java完全限定类名或别名。

小结:

从数据库表关系的角度来讲,assicuation 元素用于映射一对一或多对一关系,而 collection 元素用于映射一对多关系。 

MyBatis框架的缓存

MyBatis框架的缓存分为两个级别

1.一级缓存

MyBatis 框架的一级缓存是基于 PerpetualCache 的 HashMap 本地缓存,默认是 SqlSession 的级别的缓存,在 SqlSession 的一个生命周期内有效。

2.二级缓存

二级缓存是 SqlSessionFactory 级别的,其作用域超出了一个 SqlSession 的范围,缓存中的数据可以被所有 SqlSession 共享。

  • 6
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
SQL映射文件是指在使用对象关系映射(ORM)框架时,为了将对象与数据库表进行映射而创建的文件。在Java开发中,常用的ORM框架有MyBatis和Hibernate,它们都支持使用SQL映射文件来定义对象与数据库表之间的映射关系。 SQL映射文件通常使用XML格式来编写,包含了一系列的SQL语句和配置信息。下面是一个简单的SQL映射文件示例: ```xml <!-- UserMapper.xml --> <mapper namespace="com.example.UserMapper"> <select id="getUserById" resultType="com.example.User"> SELECT * FROM users WHERE id = #{id} </select> <insert id="insertUser" parameterType="com.example.User"> INSERT INTO users (name, age) VALUES (#{name}, #{age}) </insert> <update id="updateUser" parameterType="com.example.User"> UPDATE users SET name = #{name}, age = #{age} WHERE id = #{id} </update> <delete id="deleteUser" parameterType="int"> DELETE FROM users WHERE id = #{id} </delete> </mapper> ``` 在上述示例中,`namespace`属性指定了映射文件对应的Mapper接口或类的全限定名。`select`、`insert`、`update`和`delete`标签分别定义了查询、插入、更新和删除操作的SQL语句,使用`id`属性指定了方法名,`parameterType`属性指定了方法参数的类型,`resultType`属性指定了查询结果的映射类型。 通过SQL映射文件,我们可以将数据库操作的SQL语句独立出来,降低了代码和SQL的耦合度,使得代码更加清晰、易于维护。ORM框架会根据映射文件中的配置信息,自动将对象与数据库表进行映射,简化了开发过程。
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值