MyBatis学习(三):解析MyBatis的SQL映射XML文件写法和使用原理

上面的两篇文章,分别是MyBatis的入门小程序和MyBatis的配置XML解析,有需要的可以先去看看这两篇文章,本篇文章,会来讲解SQL映射XML文件的写法以及如何使用。

MyBatis真正的力量在于其映射语句。这里应该是奇迹发生的地方。SQL映射的XML文件是相当简单的。如果与功能对等的JDBC相比较,你会发现它减少了大约95%的代码量。MyBatis的构建应该聚焦于SQL的XML文件的构建,使得其远离普通的方式。

SQL的映射文件有很少几个顶级元素(按照他们应该被定义的顺序)

--cache:配置给定命名空间的缓存;

--cache-ref:从其他命名空间引入缓存配置;

--resultMap:最复杂,也是最优作用的元素,用来描述如何从数据库结果集中加载你的对象,这个比较复杂,需要花点时间理解,理解了使用起来很是方便;

--sql:可以重用的SQL块,也可以被其他语句引用;

--insert:映射插入语句;

--update:映射更新语句;

--delete:映射删除语句;

--select:映射查询语句


下面将以语句本身开始描述每个元素的细节。

select

查询语句在使用MyBatis时候最常用的元素之一,查询算是在数据库中最常见的操作。

	
这个语句被称为findById(id="findById"),后面使用的时候,通过namespace加上id来确定该条语句,因此每一个id都是唯一的,使用了int类型的参数(parameterType="int"),并返回一个User的类型的对象(resultType="com.wpl.mybatisdemo.User")其中上面是参数类的全完限定名根据上面文章应该可以使用别名,这样以后再使用到User时候方便很多。
select元素有很多属性允许我们自己去装配,来决定每个语句的作用细节

MyBatis学习(三):解析MyBatis的SQL映射XML文件写法和使用原理_第1张图片

MyBatis学习(三):解析MyBatis的SQL映射XML文件写法和使用原理_第2张图片

上面需要注意的就是resultType和resultMap不能够同时使用,具体resultMap是如何使用的后面会详细的介绍。

insert,update,delete这三个在实现的时候非常的相似,这三个都没有resultType或是resultMap返回结果的设置,都只有输入参数的设置。




MyBatis学习(三):解析MyBatis的SQL映射XML文件写法和使用原理_第3张图片

下面是insert,update和delete的使用语句示例


insert into Author (id,username,password,email,bio)
values (#{id},#{username},#{password},#{email},#{bio})


update Author set
username = #{username},
password = #{password},
email = #{email},
bio = #{bio}
where id = #{id}


delete from Author where id = #{id}

sql

这个元素是可以被用来定义可以重用的SQL代码段,这样在重复使用某一个代码段的时候可以考虑使用sql这个属性

id,username,password
上述的代码段就可以包含其他语句中,例如

	

resultMap

这是一个很重要也是一个比较难理解的一个属性吧,使用的很多,需要好好理解一下。


上面是数据库中数据,有三个字段,理论上我们在构建Javabean的时候应该要和这些字段名一样定义属性。但是如果没有这时候可以使用到resultMap这个属性。

MyBatis学习(三):解析MyBatis的SQL映射XML文件写法和使用原理_第4张图片

上面是Javabean。

	
	
		
		
		
	
这样就可以不用更改数据库的列名或是Javabean属性名,依然可以实现对数据库的查询。其中在


你可能感兴趣的:(mybatis)