MyBatis映射文件

一、XML映射器概念

        映射文件是MyBatis中的又一重要组件,它包含了各类SQL语句、参数、结果集、映射规则等信息。使用映射文件,开发人员不仅可以灵活编写SQL语句以满足不同场景的需要,还可将SQL语句从代码中分离,进而能够通过POJO对象完成对数据库的数据读写。

        下面图片是映射文件的配置。

二、映射文件元素

1、<mapper>元素

        <mapper>元素是映射文件的根元素,包含了一些映射文件元素(如SQL语句、类型映射等),该元素只有一个namespace属性(命名空间)。

        namespace属性作用:用于区分不同的mapper,全局唯一。 绑定DAO接口,即面向接口编程。当namespace绑定某一接口之后,可以不用写该接口的实现类,MyBatis会通过接口的全限定方法名查找到对应的mapper映射文件,来执行相应SQL语句,此时namespace的命名必须跟接口同名。

在定义接口时需要注意以下几个点:

接口类的全限定名与映射文件的namespace值一致

接口方法名与增删改查元素id属性值一致

接口方法参数与parameterType属性指定类型一致

接口方法返回值与resultType/resultMap指定映射类型一致

如下图所示:

编写测试类

 2、<select>元素

        <select>元素主要用于映射查询语句,它包含了SQL语句、参数类型、返回值类型等信息。下图为<select>元素语句示例。

id:指定该映射关系在当前命名空间的唯一标识符。

parameterType:执行SQL语句传入参数类型。

resultType:返回查询结果数据类型。

3、<insert>元素

        <insert>元素主要用于映射SQL的新增语句,包含了SQL语句、参数类型等信息。由于数据库的新增等操作均返回的影响行数,因此该元素的resultType属性值为int,默认情况下可以省略不写。

        下图为<insert>元素语句示例。

id:指定该映射关系在当前命名空间的唯一标识符。

parameterType:执行SQL语句传入参数类型。

flushCache:默认为true,只要语句被调用,就会清空本地和二级缓存。

statementType:可选 STATEMENT,PREPARED 或 CALLABLE。

useGeneratedKeys:设置为true时,取出由数据库内部生成的主键值。

keyProperty:指定能够唯一识别对象的属性名,多个使用逗号分隔。

keyColumn:设置生成键值在表中的列名。当主键列不是表中的第一列的时候,必须设置的此属性。

4、<update>元素

        <update>元素主要用于映射SQL的修改语句,包含了SQL语句、参数类型等信息。另外该元素还可作为DDL语句的执行元素。 

        下图为<select>元素语句示例。

        由于<update>元素所拥有的属性与<insert>元素类似,因此这里就不再做具体介绍。

5、<delete>元素

        <delete>元素主要用于映射SQL的删除语句,包含了SQL语句、参数类型等信息。在实际开发当中不建议直接将数据删除,应使用标识列(如is_deleted)来执行逻辑删除操作。

        下图为<select>元素语句示例。

        由于<delete>元素所拥有的属性与<insert>元素类似,因此这里就不再做具体介绍。

6、<sql>元素

        <sql>元素主要用来定义可重用的SQL代码片段,可以使用<include>元素将其嵌入到其它元素的SQL语句当中。

三、实例操作

以下面这道题为例子,实战演示MyBatis映射文件操作流程。因为增删改操作与查找操作类似,这里就举例查找操作进行示例。

下面为相关数据的数据库表。

操作步骤:

1、创建Provider实体类并生成setter、getter方法

2、创建ProviderDao接口

这里冒红是因为后面没有写映射文件,写了映射文件后就不会标红了。

3、配置映射文件

4、编写测试类

6、运行并输出数据

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值