任务2.1 条件查询_第1页
任务2.1 条件查询_第2页
任务2.1 条件查询_第3页
任务2.1 条件查询_第4页
任务2.1 条件查询_第5页
已阅读5页,还剩6页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

任务2.1条件查询掌握MyBatis映射文件及常用元素的基本作用能够进行条件查询操作,包括单条件查询和多条件查询会使用<resultMap>进行自定义结果集映射了解<sql>元素的作用及使用方法1本节任务

MyBatis映射文件是MyBatis框架的关键部分,其将SQL语句从Java代码中分离出来并集中进行管理,所有的SQL语句都可以在该文件中,即使数据库表结构发生变化或SQL语句需要被优化,也只需修改该文件,而不需要对Java代码进行调整。以下是一个基本的MyBatis映射文件的结构示例。

2知识支撑1<?xmlversion="1.0"encoding="UTF-8"?>2<!DOCTYPEmapper3PUBLIC"-////DTDMapper3.0//EN"4"mybatis官网/dtd/mybatis-3-mapper.dtd">5<mappernamespace="com.bigdata.dao.StudentDao">6<!--结果映射-->7 <resultMapid="studentMap"type="com.bigdata.pojo.Student">8 <idcolumn="sno"property="sno"/>9 <resultcolumn="sname"property="sname"/>10 <resultcolumn="sage"property="sage"/>11 <!--其他字段映射-->12 …13 </resultMap>14 <!--SQL片段-->15 <sqlid="selectSomething">16 sno,sname,sage17 </sql>18 <!--查询操作-->19 <selectid="selectStudentBySno"resultMap="studentMap">20 SELECT<includerefid="selectSomething"/>21 FROMstudent22 WHEREsno=#{sno}23 </select>24 <!--插入操作-->25 <insertid="方法名">26 <!--SQL语句-->27 </insert>28 <!--更新操作-->29 <updateid="方法名">30 <!--SQL语句-->31 </update>32 <!--删除操作-->33 <deleteid="方法名">34 <!--SQL语句-->35 </delete>36</mapper><mapper>元素是MyBatis映射文件的根元素,其他元素都是该元素的子元素。MyBatis映射文件的常用元素如表2.1.1所示。

2知识支撑元素名称说明<mapper>根元素,该元素只有一个namespace属性,且该属性的值需要全局唯一<cache>配置给定命名空间的缓存<cache-ref>从其他命名空间引用缓存配置<select>用于映射查询语句<insert>用于映射添加语句<update>用于映射更新语句<delete>用于映射删除语句<sql>可以重用的SQL块,也可以被其他语句使用<resultMap>描述数据库结果集和对象的对应关系

表2.1.1MyBatis映射文件的常用元素

条件查询:根据某个或者某些条件进行查询的操作。在MyBatis框架中<select>元素用于映射查询语句,使用该元素可以从数据库表中查询数据并返回结果。其常用属性如表2.1.2所示。

2知识支撑属性名称说明id表示命名空间中<select>元素的唯一标识,通过该标识可以调用这条查询语句parameterType是一个可选属性,用于指定SQL语句所需参数类的全限定名或别名,默认值是unsetresultType用于指定执行这条SQL语句返回的全限定类名或别名resultMap表示外部resultMap的命名引用,resultMap和resultType不能同时使用flushCache用于指定是否需要MyBatis清空本地缓存和二级缓存useCache用于控制二级缓存的开启和关闭timeout用于设置超时时间,单位为秒fetchSize获取记录的总条数设定,默认值是unsetstatementType用于设置MyBatis预处理类resultSetType表示结果集的类型,默认值是unset

表2.1.2<select>元素的常用属性说明

1.单条件查询按主键查询:根据主键唯一性原则,其查询结果将返回一个对象。下面通过【任务2-1】进行具体的讲解和演示。

【任务2-1】查询学生表(student)中学号(sno)为2的学生的信息。当前student表的数据记录情况如表2.1.3所示。2知识支撑snosnamesage1张三182李四203王五194赵六19表2.1.3

当前student表的数据记录情况具体操作见视频

实操2.1条件查询(一)操作要点编写实体类在接口中编写功能方法(抽象);重写接口中抽象方法并实现业务功能;在映射文件中编写SQL语句;测试运行查看结果。按非主键查询:由于查询条件为非主键,因此得到的数据记录可能有多条,即查询结果集为一个泛型类集合。下面通过【任务2-2】进行具体的讲解和演示。

【任务2-2】查询学生表(student)中年龄(sage)为19的学生的信息。数据库表student如表2.1.3所示。(操作要点同上)具体操作见视频

实操2.2条件查询(二)

2.多条件查询

在日常生活中用的更为广泛的不是单条件查询而是多条件查询,多条件查询的处理思想是将查询条件参数封装到POJO类对象或集合中,之后以对象或集合的方式进行整体传递。接下来通过【任务2-3】演示通过POJO类封装多条件的<select>查询操作。【任务2-3】查询学生表(student)中年龄(sage)为19且姓名(sname)为“王五”的学生的信息。((操作要点同上))

具体操作见视频

实操2.3条件查询(三)2知识支撑

自定义查询结果映射<resultMap>

MyBatis默认会将查询结果集中的列名与Java对象的属性名进行自动映射,但当两者不一致或需执行更复杂的映射逻辑(如将多个列合并到一个属性中)时,自动映射就会失效。<resultMap>可以手动指定这种映射关系,确保查询结果被正确地填充到Java对象中。其基本语法如下。

接下来通过一个任务演示<resultMap>元素的具体使用方法。2知识支撑1<resultMapid="唯一标识符"type="Java类型全限定名或别名">2 <!--主键字段映射-->3 <idproperty="Java对象属性名"column="数据库表列名"/>4 <!--普通字段映射-->5 <resultproperty="Java对象属性名"column="数据库表列名"/>6 <!--其他映射元素,如关联映射等-->7</resultMap>【任务2-4】查询学生表(student)中所有学生的信息。数据库表student如表3.1.3所示。(操作要点同上)

具体操作见视频

实操2.4使用<resultMap>实现自定义映射<sql>元素<sql>元素可以将一些常用的SQL片段提取出来进行复用,从而提高代码的可维护性和复用性。基本用法是:使用<sql>元素定义一个可复用的SQL片段,在需要使用该片段的地方,通过<include>元素将其引入。下面通过一个任务讲解和演示<sql>元素的具体使用方法。【任务2-5】使用<sql>元素将sno、sname、sgae定义为可复用片段,实现对学生姓名(sname)为三个字的学生的全查询操作。当前student表的数据记录情况如图2.1.4所示。((操作要点同上))

具体操作见视频

实操2.5使用<sql>元素实现SQL片段复用2知识支撑图2.1.4

当前student表的数据记录情况

我们重点学习了四个核心知识点:MyBatis映射文件的结构和常用元素,理解了<mapper

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论