MyBatis学习笔记(四)Lombok_resultMap(JavaBean属性名和数据库中的字段名称不一致;一对多多对一的查询)

上一篇:MyBatis学习笔记(三)生命周期_分页_使用注解开发_mybatis执行流程

一、Lombok

1. 作用:不用手写JavaBean中的常用方法,只需注解可搞定

2. 安装插件,右边蓝色是lombok的全部注解

3. 导包:maven法,注掉scope标签

4. 使用 

(1)直接用在类上,右边的图是自动生成的一系列方法

    

(2)也可以用在字段上

  

二、解决User.java的属性名和数据库中的字段名称不一致的问题

比如数据库中是pwd,User.java中是password

实际的sql语句会根据数据库中的字段名补齐,导致User.java中的不一致字段查询不到

select * from mybatis.user where userId=#{id}
//补齐后
select userId,name,pwd from mybatis.user where userId=#{id}

1. 解决方法1 

select userId,name,pwd as password from mybatis.user where userId=#{id}

2. 解决方法2 

 三、利用resultMap实现包含外键多对一的查询

有一个学生表和一个教师表,其中学生表中有一个外键,是教师表的 tid

多对一是指从学生表的角度查询

1. 建立对应的JavaBean

   

2. 建立接口类 

StudentMapper.java

TeacherMapper.java

3. 建立接口实现类 

(1)方法一:子查询,先查询到学生表中对应老师的 tid,再查找tid对应的教师的名字

(2)方法二:联表查询 

sql多表查询语法示例

//从两个表查
select * from student stu,score sc where stu.id=sc.sid;

//从三个表查
select st.'name',sc.score,c.name 
from stu st,score sc,course c 
where st.id=sc.sid and sc.cid =c.cid;

4. 测试 

四、利用resultMap实现包含外键一对多的查询

有一个学生表和一个教师表,其中学生表中有一个外键,是教师表的 tid

一对多是指从教师表的角度查询

1. 建立对应的JavaBean

2. 建立接口类 

3. 建立接口实现类 

(1)方法一:联表查询 

(2)方法二:子查询 

4. 测试 

下一篇:MyBatis学习笔记(五)动态SQL实现增删改查_缓存

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值