mybatis开发2

动态sql

通过一些表达式的判断等,对sql语句进行灵活的拼接,组装

 

Sql片段

  1. 定义sql片段

  1. 引用sql片段

foreach

SELECT * FROM USER WHERE id = 1 OR id = 2;

SELECT * FROM USER WHERE id IN (1,2);

 

List  ids

  1. 定义

  1. 定义接口方法

  1. 测试方法

注意:

 

另一种实现   in(1,2)

 

高级映射

 

 

 

一对一查询

 

需求:查询订单信息,关联查询创建订单的用户信息

 

SELECT

  order.*,

  user.username,

  user.sex,

  user.address

FROM

  orders,

  USER

WHERE orders.user_id = user.id;

 

resultType方式实现:

 

创建pojo类

 

定义 mapper.xml映射文件

 

 

定义接口:

 

测试程序

 

 

resultMap方式实现

 

 

 

  1. 定义resultMap

  1. 定义statemet中的resultMap

  1. 定义接口

  1. 测试

ResultType:方式简单,只需要在pojo类中添加需要新增的属性即可完成映射,没有特殊需求情况下使用这种方式

 

ResultMap:需要单独定义resultMap映射,适应于对查询结果有一些特殊需求的情况

 

ResultMap可以实现延迟加载,resultType不行

 

 

一对多查询

定义相关pojo类

1.给Orders类中添加List

 

2.

3.

4

5.

 

 

 

多对多查询

场景:查询用户和用户订单对应的产品信息

 

 

1.

 

 

 

延迟加载:

提高程序性能

 

ResultMap   里面的   association  collection 具有延迟加载的功能

 

 

 

 

 

 

 

 

 

默认开启一级缓存

Cache Hit Ratio [com.mybatis.mapper.UserMapper]: 0.0

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值