3.28
建立 category 与 product 表
编写 实体层 entity
编写 mapper 层, 接口 , 再编写映射文件
当 实体层的属性 与 数据库中表的列名 对应不上时, 如何解决?
mybatis 提供 两种解决办法:
方法1: 修改sql 进行 列的重命名
方法2: 配置 resultMap ,进行关联映射
实体类 表
Category.java category
cno id
name cname
方法1: 修改sql , 对列 进行 重命名
select id as cno,cname name
from category
3.29 resultMap: 当 属性与 列名对应不上时,resultMap
resultType: 基本数据类型 或String 或 实体类类名
注意: resultMap 与 resultTye 在同一个标签里 只能出现一个
resultMap:
想使用resultMap 必须 先 声明一个 resultMap
在xxxMapper.xml 中 定义的resultMap , 可以多次使用
resultMap的属性问题
id: 任意起的名字, 推荐 类型+Map
type: 类名, 注意 在mybatis-config.xml 配置别名后 才允许直接写类名
否则 也需要写全路径的包名.类名
关于resultMap的子标签:
<id/> --- 一般就是 与类名对应的表的 主键的列,只写一次
<result/> result 配置 非主键的列, result标签可以写多个,
子标签的 property 与 column
property 属性 --类里 才有属性, 属性 区分大小写
column 列名 -- 表里 才有列 --- 列 不区分大小写
在 <select 标签时 配置 resultMap="resultMap标签的id的值"> 即可
练习:
1 使用方法1 : 查询 全部商品信息
2 使用方法2: 查询全部商品信息
简化实体层配置: 借助 lombok.jar
修改pom.xml 增加 lombok.jar
然后 在实体层 只需要编写属性 即可
@ToString //重写 同String()
@NoArgsConstructor //无参构造
@AllArgsConstructor //全参构造
@Data //get/set
一对一:
product category
一种商品 对应一个种类别
一个员工 属于 一个部门
他们之间的关系 1:1
在 查询商品信息的同时 要显示出 类别信息, 即显示编号又显示类别名称
一对一实现步骤: 有种实现方式: 一种叫关联查询, 一种叫嵌套查询
a. 一个商品 对应一个类别
因此 修改 Product.java 增加 一个类别的对象
b. resultMap 增加 association 配置 一对一
方法1: 关联查询
首先 修改 <select > 标签的sql 语句,进行关联查询,
sql 语法:
select 列名,列名2,.....
from 表名 表的别名a, 表名2 表名2的别名b
where a.外键=b.主键
注意: sql的列 必须唯一, 如果 出现重复列,则必须对重复列进行重写命名
接下来 为 resultMap 增加 association 配置
association 的property 对应的是 属性,
javaType 对应的是 属性的类型
配置 <id/> <result/>
练习 : 创建新的 mybatis2_1, 执行查询 所有的员工信息并显示 部门名称
方法2: 嵌套查询 4.1 嵌套查询,
查询产品信息时 显示 类别信息
首先 为ProductMapper.java 增加 List<Product> findAllByInner();
编写 ProductMapper.xml 增加 select , sql 编写 单表查询
由于1对一 因此 在resultMap中配置 association 的select 及 column 及 property
association :
property: 实体类中的属性
select : 调用 另外的mapper的查询方法, 注意写 全路径的名字,即包名.类名.方法名
column: 表示 调用 select的方法名 对应的参数列,
4.1 嵌套查询 vs 连接查询
sql不同:
连接查询:涉及多表连接, 当出现重复列时 需要对重复的列进行 列的重命名
嵌套查询: 就是单表查询
参与的mapper文件不同:
连接查询: 在一个mapper文件中 配置即可
嵌套查询: 需要 在 association或collection 中 通过 select 调用 另外的mapper
执行效率:
连接查询: 直接查询, 多表连接查
嵌套查询: 是 每执行一个Product 就会查一个Category
练习: emp 与 dept 的 一对一的嵌套查询
射手座的程序媛
- 粉丝: 1895
- 资源: 193
最新资源
- 3e53940d22a0327bf2fe77db43da8529 (1).png
- 基于小程序的傣族节日及民间故事推广小程序源码(小程序毕业设计完整源码+LW).zip
- 基于Java多语言开发的小程序商城系统设计源码
- 基于Vue框架的排课项目前端设计源码
- 基于的学生宿舍管理系统+node源码(小程序毕业设计完整源码).zip
- 基于指纹识别技术的社区矫正人员管理平台设计源码
- 基于Java的选课管理系统GUI设计源码
- 基于C#开发的医院病人出入院管理系统设计源码
- 基于小程序的农产品商城小程序源码(小程序毕业设计完整源码).zip
- 集冲模、装配和检测于一体的装配机sw19可编辑全套技术资料100%好用.zip
- 基于小程序的“健康早知道”源码(小程序毕业设计完整源码+LW).zip
- 基于HUST2024软件工程项目的儿童学习系统CSS设计源码
- 基于光电心率检测技术的Heartrate设计源码
- 基于小程序的“口腔助手”小程序的设计与实现源码(小程序毕业设计完整源码+LW).zip
- 基于PHP的简单轻巧灵活工作流引擎设计源码
- 流水线风干机sw18可编辑全套技术资料100%好用.zip
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈