Mybatis多表查询和注解开发


Mybatis多表查询

套路

  1. 基于需求编写SQL语句
  2. 基于SQL语句的查询结果,分析类与类之间关联(建立实体类和实体类的关联)
  3. 在映射文件中,基于SQL查询结果,配置映射关联

一对一查询

1对1查询结果: 在Order类中添加新属性:User对象
Snipaste_2024-04-22_13-56-43.png
Snipaste_2024-04-22_14-01-49.png
<association>标签

一对多查询

1对多查询结果:在User类中添加新属性:List对象
Snipaste_2024-04-22_14-40-44.png
<collection>标签

注解开发

概述

上面学习的SQL映射文件可以用xml的方式配置,但是有些时候xml的编写非常繁琐,所以需要更加简便的基于注解的配置方式。
注解配置的方式在很多情况下能够取代mybatis的映射文件,提高开发效率
:当进行单个表的crud时,一般使用注解开发
当进行多个表一起查询时,一般用xml配置方式开发

相关注解

Snipaste_2024-04-22_15-20-53.png

步骤

  1. 将mybatis全局配置文件mybatis-config.xml中mapper路径改为包扫描路径
  2. 编写接口和注解
  3. 测试

新增

Snipaste_2024-04-22_15-34-44.png

主键回填

Snipaste_2024-04-22_15-44-23.png

查询

别名映射

  1. 在注解中的SQL语句中添加别名
  2. 在核心配置文件中,配置驼峰映射
  3. 在注解中用@Results(类似于xml中的标签)

Snipaste_2024-04-22_15-59-09.png
Snipaste_2024-04-22_16-03-36.png

模糊查询

  1. 和xml映射文件中的一样,要么在查询时加入%(%张%)
  2. 要么在注解中写SQL语句时,LIKE CONCAT(‘%’,#{name},‘%’)

动态SQL(了解)

查询动态sql时一般用xml配置文件
Snipaste_2024-04-22_16-31-18.png

  • 5
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
### 回答1: Mybatis-Plus是一个基于Mybatis的增强工具,它提供了很多方便的注解来进行多查询。其中常用的注解有: 1. @TableName:用于指定实体类对应的数据库名。 2. @TableField:用于指定实体类属性对应的数据库字段名。 3. @TableId:用于指定实体类属性对应的数据库主键字段名。 4. @JoinTable:用于指定多查询中的关联和关联字段。 5. @Select:用于指定查询语句,可以使用Mybatis的动态SQL语句。 6. @Results:用于指定查询结果集的映射关系。 使用这些注解可以方便地进行多查询,减少手写SQL的工作量。同时,Mybatis-Plus还提供了很多其他的增强功能,如自动填充、逻辑删除等,可以大大提高开发效率。 ### 回答2: MyBatis-Plus是一个开源的MyBatis框架的增强工具,可以极大地简化开发人员在使用MyBatis框架时的开发难度,其提供的注解和方法大大简化了开发的过程。当我们需要进行多查询时,MyBatis-Plus也提供了相应的注解来帮助我们快速完成这个任务。 1. @TableJoin注解 @TableJoin注解明了我们进行多连接查询,其支持以下的参数: - type:连接类型,有LEFT_JOIN、RIGHT_JOIN、INNER_JOIN、FULL_JOIN。 - entity:需要连接的实体类。 - alias:连接的实体类别名。 2. @PageableDefault注解 @PageableDefault注解可以应用于方法参数级别,指定分页参数的默认值。 3. @Select注解 @Select注解指定一个查询操作的SQL语句,其支持以下的参数: - value: SQL语句。 - countQuery:查询总数的SQL语句 。 4. @SelectProvider注解 @SelectProvider注解指定具体的Provider类,在这个类中我们会实现查询SQL的生成逻辑。 总的来说,MyBatis-Plus提供了多种多查询注解来满足我们开发中的需求,这些注解可以极大的减少我们的开发成本,让我们更加专注于业务的实现。同时,MyBatis-Plus也提供了完备的文档,这些文档包含了所有需要用到的注解以及具体的使用方法,让我们更加快捷地进行开发。 ### 回答3: MyBatis-Plus是基于MyBatis的一个增强工具,其提供了很多实用的功能,其中包括多查询注解。 多查询注解的使用非常简单,只需要在需要查询的实体类上添加对应的注解即可,例如: ```java @TableName(value = "user") public class User { @TableId(value = "id") private Long id; @TableField(value = "username") private String username; private String password; // getter和setter省略 } @TableName(value = "order") public class Order { @TableId(value = "id") private Long id; private Long userId; private BigDecimal amount; // getter和setter省略 } ``` 假设需要查询用户信息和每个用户的订单总金额,可以通过使用@SqlSelect注解和@Join注解来实现: ```java @SqlSelect("select u.*, sum(o.amount) as total_amount from user u left join order o on u.id = o.user_id group by u.id") public class UserOrderVo { @TableId(value = "id") private Long id; @TableField(value = "username") private String username; private String password; @TableField(value = "total_amount") private BigDecimal totalAmount; // getter和setter省略 } ``` 上述代码中,@SqlSelect注解示自定义SQL查询语句,@Join注解示关联查询,其中on属性示关联条件,type属性示关联类型,joinColumns和referencedColumns属性示连接的两个的关联字段。 除了@SqlSelect和@Join注解MyBatis-Plus还提供了@SqlSeq和@SqlKey注解,用于自定义序列查询和主键生成策略。总之,MyBatis-Plus多查询注解可以极大地简化复杂的多查询操作,提高工作效率。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

@Zeal

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值