mybaitis多对一

1. 回顾

1. mybatis的一些优化
   *(1) 引入数据库的属性文件
   *(2) 添加的日志文件
   * (3) 为实体类起别名
2. 如果列名和属性名不同!
   *(1) 为查询得列名起别名---【属性名相同】
   * (2) resultMap标签定义列名和属性名之间的映射关系。 ---【必须带有id标签】
3. 连表查询
   *(1)多对一 resultMap
                  <association property="实体类得属性名" javaType="实体类的类型">
                     <id />
                  </association>
                
        

2. 正文:

2.1 通过两次查询得到多对一

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-tUrflo2N-1646100196443)(asserts/image-20211108143809098.png)]

2.2 一对多----讲一种实现方式

要求:

class  teacher  student表

根据班级编号查询班级信息 【含盖 老师信息  以及该班级中所有的学生信息】
CREATE TABLE student(
s_id INT PRIMARY KEY AUTO_INCREMENT,
s_name VARCHAR(20),
class_id INT
);
INSERT INTO student(s_name, class_id) VALUES('xs_A', 1);
INSERT INTO student(s_name, class_id) VALUES('xs_B', 1);
INSERT INTO student(s_name, class_id) VALUES('xs_C', 1);
INSERT INTO student(s_name, class_id) VALUES('xs_D', 2);
INSERT INTO student(s_name, class_id) VALUES('xs_E', 2);
INSERT INTO student(s_name, class_id) VALUES('xs_F', 2);

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-bRsVGC6X-1646100196444)(asserts/image-20211108152336479.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-YzRNe6Iv-1646100196445)(asserts/image-20211108152443914.png)]
在这里插入图片描述

2.3 动态 SQL 与模糊查询

MyBatis动态语句分为4种元素:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-CGZC5GRi-1646100196445)(asserts/image-20211108155503582.png)]

DROP TABLE IF EXISTS `account`;
CREATE TABLE `account` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `name` varchar(255) DEFAULT NULL,
  `money` double DEFAULT NULL,
  `isdeleted` tinyint(4) DEFAULT NULL,
  `created` datetime DEFAULT NULL,
  `updated` datetime DEFAULT NULL,
  PRIMARY KEY (`id`)
)

1.if元素,如下

(1)如果name不为空 则按照name查询 如果为空 则查询所有。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-fyRfrJg7-1646100196446)(asserts/image-20211108162025905.png)]

2.where元素,如下

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-FQnta8GB-1646100196447)(asserts/image-20211108162517258.png)]

3.choose[when otherwise]

在这里插入图片描述

4. set 用在update上

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-iD8Hu9Zd-1646100196448)(asserts/image-20211108170501889.png)]

5. foreach 遍历

## [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-asq9hGJ0-1646100196448)(asserts/image-20211108171913211.png)]

总结:

1. 链表查询----- 一对多
2. 动态sql  
    [if  where  set  (choose when otherwise) foreach ]
    
  
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值