JavaEE框架技术(SpringMVC+Spring+MyBatis)课件03MyBatis复杂查询-集合查询-1.ppt

JavaEE框架技术(SpringMVC+Spring+MyBatis)课件03MyBatis复杂查询-集合查询-1.ppt

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
框架程序设计java 框架程序设计java * * 第3章 Mybatis复杂查询 框架程序设计(Java) * 学习目标 mybatis的关联查询 2 mybatis的集合查询 3 mybatis的鉴别器 4 自定义映射关系 1 * 2mybatis的关联查询-目录 1)联合查询 2)构造查询 3)子查询 * 2.2构造查询【可选】 回顾上节课自定义映射关系resultMap的配置: resultMap type=domain.User id=user id property=name column=username/ result property=pass column=password/ /resultMap id、result是用来配置实体类(domain.User)中的属性与数据库字段的映射关系的。 id、result的本质其实是mybatis根据我们自定义的映射关系使用反射将数据库查询结果中字段的值填充到实体类对应的属性中的 以上是使用id、result的方式定义映射,还有一种方式是使用构造函数的方式来定义映射 * 2.2构造查询【可选】 首先在domain.User加入构造方法: public class User { private String name; private String pass; public User(String name,String pass){ this.name=name; this.pass=pass; } 省略get、set方法 } * 2.2构造查询【可选】 修改resultMap标签: resultMap id=user type=domain.User constructor arg column=username javaType=String / arg column=password javaType=String / /constructor /resultMap constructor标签的含义就是使用构造函数来定义映射关系 注意参数的顺序以及为每一个参数指定javaType * 2.3子查询-任务描述 例子3:在例子1的基础上,进行子查询 表名employee(雇员信息表) username 用户名 字符串 10位 主键 password 密码 字符串 6位 非空 deptid 部门id 整型 外键 表名department(部门信息表) id 部门id 整型 自动递增 主键 deptname 部门名称 字符串 10位 非空 数据 要求用mybatis框架编程,mysql数据库,查询employee表的所有记录,输出用户名和该用户所在的部门名称 * 2.3子查询-分析子查询过程 二阶段查询 阶段1:查询雇员表所有记录 select * from employee 阶段2:从阶段1的查询结果中循环取出每条记录的deptid字段值,查询department表中id=deptid字段值的记录 for (int i = 0; i 雇员表的记录数; i++) { int deptid=阶段1中查询结果的下一条记录的deptid字段值; select * from department where id=deptid } 综合阶段1和2的结果就能够得到本例子要求的结果 这种二阶段查询的方式称之为子查询 * 2.3子查询-分析子查询过程 上面的分析中涉及两个SQL语句 select * from employee ---查询出所有用户 select * from department where id=#{deptid}--根据部门id获取部门 因此,首先我们在SQL配置文件中加入这两个SQl的配置 * 2.3子查询-分析子查询过程 select * from employee ---查询出所有雇员配置如下: resultMap id=employee type=domain.Employee id property=name column=username/ result property=pass column=password/ result property=deptid column=deptid/ /resultMap select id=findAllEmployees resultMap=employee select * from employee /select * 2.3子查询-分析子查询过程 select * from department where id=#{deptid}--根据部门id获取部门 配置如下: res

文档评论(0)

autohhh + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档