讲义课件文本编程2 sql映射文件.pptxVIP

  • 32
  • 0
  • 约8.38千字
  • 约 42页
  • 2021-04-19 发布于四川
  • 举报
SQL映射文件线上线下平台预习/42本章任务/42完成超市订单系统-用户管理功能模块之用户的增删改查实现本章目标/42掌握通过SQL映射文件进行增删改查掌握参数的使用掌握resultMap了解Cache的使用SQL映射的XML文件MyBatis 真正的强大在于映射语句,专注于SQL,功能强大,SQL映射的配置却是相当简单SQL映射文件的几个顶级元素(按照定义的顺序)mapper – namespacecache – 配置给定命名空间的缓存cache-ref – 从其他命名空间引用缓存配置resultMap –用来描述数据库结果集和对象的对应关系sql – 可以重用的SQL块,也可以被其他语句引用insert – 映射插入语句update – 映射更新语句delete – 映射删除语句select – 映射查询语句/42mapper元素mappernamespace:命名空间namespace和子元素的id联合保证唯一,区别不同的mapper绑定DAO接口namespace的命名必须跟某个接口同名接口中的方法与映射文件中SQL语句id一一对应示例mapper namespace=cn.smbms.dao.user.UserMapper select id=getUserList … …… /select/mapper/42select 7-1演示示例1:根据用户名对用户表进行模糊查询/42select是MyBatis中最常用的元素之一select语句有很多属性可以详细配置每一条语句id命名空间中唯一的标识符接口中的方法与映射文件中的SQL语句id一一对应parameterType传入SQL语句的参数类型resultTypeSQL语句返回值类型的完整类名或别名select 7-2按条件查询用户表,若多条件情况下如何处理? 传入多个参数进行入参? 封装成User对象进行入参? 提示问题/42select 7-3演示示例2:改造用户表的查询操作-封装对象入参/42parameterType基础数据类型int、String、Date等只能传入一个,通过#{参数名}即可获取传入的值复杂数据类型Java实体类、Map等通过#{属性名}或者#{map的keyName}即可获取传入值select 7-4按条件查询得到用户表列表,需要显示指定字段,并显示用户角色(中文表述)用户表中的userRole字段记录的是角色id,不是其对应的名称,如何解决?修改User的属性,增加userRoleName属性修改查询SQL语句,连表查询resultMap-自定义映射结果提示问题/42select 7-5resultMap 描述如何将结果集映射到Java对象resultMap type=User id=userListresult property=id column=id/result property=userCode column=userCode/result property=userName column=userName/result property=userRole column=“userRole/result property=userRoleName column=roleName//resultMapselect id=getUserList resultMap=userList parameterType=User select u.*,r.roleName from smbms_user u,smbms_role r where u.userName like CONCAT (‘%’,#{userName}, ‘%’) and u.userRole = #{userRole} and u.userRole = r.id /select表示查询出来的属性对应的值赋给实体对象的哪个属性从数据库中查询的列名或者别名示例一个外部resultMap的id,表示返回结果映射到哪一个resultMap上演示示例3:使用resultMap实现用户信息查询(用户表和角色表查询)/42select 7-6/42resultType :直接表示返回类型基本数据类型复杂数据类型resultMap :对外部resultMap的引用应用场景:数据库字段信息与对象属性不一致复杂的联合查询,自由控制映射结果二者不能同时存在,本质上都是Map数据结构select 7-7使用resultMap如何实现自由灵活的控制映射结果,从而达到只对关心的属性进行赋值填充?resultMap自动映射匹配前提:字段名与属性名一致resultMap的自动映射级别-autoMappingBehaviorPARTIAL(默认):自动匹配所有问题分析禁止自动匹配settings s

文档评论(0)

1亿VIP精品文档

相关文档