Mysql和Mybatis 查询时有多个Id

1、mysql查询时有多个id可以使用in

2、mybatis查询时有多个id使用foreach

List集合:

Mapper:
List<Report> selectByMediaID(@Param("nowtime") Date date,Integer buyeruserid,@Param("medias")List<Integer> medias);
Mapper.xml:
select * 
FROM
ssp_Report_Initial_Region
WHERE
date_add(report_date, INTERVAL 22 DAY) <![CDATA[ >= ]]> #{nowtime,jdbcType=DATE}
AND date_add(report_date, INTERVAL 9 DAY) <![CDATA[ <= ]]> #{nowtime,jdbcType=DATE}
<if test="buyeruserid !='' and buyeruserid != null and buyeruserid != 0">
    AND BuyerUserID= #{buyeruserid,jdbcType=INTEGER}
</if>
and mediaID in
<foreach collection="medias" item="mediaid" open="(" separator="," close=")">
    #{mediaid,jdbcType=INTEGER}
</foreach>
GROUP BY
report_date

数组:

Mapper:
List<Report> selectByMediaID(@Param("nowtime") Date date,Integer buyeruserid,@Param("medias")Integer[] medias);
Mapper.xml:
<if test="medias !=null">
and mediaID in
<foreach collection="array" index="index" item="mediaid" open="(" separator="," close=")">
    #{mediaid,jdbcType=INTEGER}
</foreach>
</if>

foreach:

foreach元素的属性主要有item,index,collection,open,separator,close。item表示集合中每一个元素进行迭代时的别名,index指定一个名字,用于表示在迭代过程中,每次迭代到的位置,open表示该语句以什么开始,separator表示在每次进行迭代之间以什么符号作为分隔符,close表示以什么结束,在使用foreach的时候最关键的也是最容易出错的就是collection属性,该属性是必须指定的,但是在不同情况下,该属性的值是不一样的,主要有一下3种情况: 

1、如果传入的是单参数且参数类型是一个List的时候,collection属性值为list .
2、如果传入的是单参数且参数类型是一个array数组的时候,collection的属性值为array .
3、如果传入的参数是多个的时候,我们就需要把它们封装成一个Map了,当然单参数也可以封装成map,实际上如果你在传入参数的时候,在MyBatis里面也是会把它封装成一个Map的,map的key就是参数名,所以这个时候collection属性值就是传入的List或array对象在自己封装的map里面的key.

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Spring Boot 是一个用于构建独立的、基于生产级别应用的框架,它简化了 Spring 应用程序的开发过程。MySQL 是一种开源的关系型数据库管理系统,而 MyBatis 是一个用于简化 JDBC 编程的持久层框架。 在使用 Spring Boot 进行开发时,可以很方便地集成 MySQLMyBatis。首先,我们需要在项目的配置文件中配置数据库连接信息,包括数据库的地址、用户名、密码等。然后,可以使用 MyBatis 提供的注解或 XML 配置文件来编写 SQL 查询语句,并将其映射到 Java 对象或接口上。最后,通过使用 Spring Boot 提供的自动配置和注解,我们可以轻松地将 MyBatis 集成到 Spring Boot 应用程序中。 例如,可以通过在 pom.xml 文件中添加相关依赖来引入 MySQLMyBatis: ```xml <!-- MySQL 依赖 --> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> </dependency> <!-- MyBatis 依赖 --> <dependency> <groupId>org.mybatis.spring.boot</groupId> <artifactId>mybatis-spring-boot-starter</artifactId> </dependency> ``` 然后,在配置文件中添加数据库连接信息: ```properties spring.datasource.url=jdbc:mysql://localhost:3306/mydatabase spring.datasource.username=username spring.datasource.password=password ``` 接下来,创建一个 MyBatis 映射文件或使用注解来定义 SQL 查询语句,并将其映射到 Java 对象或接口上。例如,可以创建一个 User 实体类和对应的 UserMapper 接口: ```java public class User { private Long id; private String name; // ... 省略 getter 和 setter 方法 } @Mapper public interface UserMapper { @Select("SELECT * FROM user WHERE id = #{id}") User findById(Long id); } ``` 最后,在需要使用数据库操作的地方注入 UserMapper 并进行相应的操作: ```java @Service public class UserService { @Autowired private UserMapper userMapper; public User getUserById(Long id) { return userMapper.findById(id); } } ``` 这样,就完成了 Spring Boot、MySQLMyBatis 的集成,可以方便地进行数据库操作了。当然,还可以根据具体需求进行更多的配置和定制。希望这些信息对你有所帮助!如果还有其他问题,请继续提问。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值