Springboot mybatis注解方式(多条件查询,多参数传递)

1、修改

//条数更改和修改
@Update("update ss set " +
        "bt = #{bt} , tt = #{tt} , update_date = #{updateDate} WHERE id = #{id}")
void upDateByBalanceCountAndTotalCountAndUpdateDate(@Param("id") int id,  @Param("bt") int balanceCount,
                                                    @Param("tt") int tt,
                                                    @Param("updateDate") int updateDate);
解释:where条件比较多时最好写在一行   否则查询失败

2、  多条件查询

@Select(" <script> SELECT id,"      
        "p_t pT," +
        " WHERE " +
        "1+1"+
        " and s = #{pa.s}"+
        " <if test=\"#{pa.d} != null\">and uid = #{pa.d} </if> "+
        " <if test=\"#{pa.d} != null \">and brand_id = #{pa.d} </if> "+
        " <if test=\"#{pa.d1} != null \">and id limit #{pa.d1},#{pa.d2} </if> </script>")
List<CpMsgPayDetail> findByid1Andid3 (@Param("pa") Map<String, Object> pa);
解释:一定要加上脚本<script> 否则查询失败
在 Java Spring Boot 中使用 MyBatis 进行多表查询可以通过以下步骤进行操作: 1. 首先,确保你已经在项目的依赖中添加了 Spring Boot 和 MyBatis 的相关依赖。你可以在 `pom.xml` 文件中添加以下内容: ```xml <dependencies> <!-- Spring Boot Starter --> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> <!-- MyBatis Starter --> <dependency> <groupId>org.mybatis.spring.boot</groupId> <artifactId>mybatis-spring-boot-starter</artifactId> <version>2.2.0</version> </dependency> <!-- MySQL Connector --> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> </dependency> </dependencies> ``` 2. 创建实体类和对应的 Mapper 接口。假设我们有两个表:`users` 和 `orders`,并且这两个表存在一对多的关系(一个用户可以有多个订单)。你可以创建两个实体类 `User` 和 `Order`,并为每个实体类创建对应的 Mapper 接口 `UserMapper` 和 `OrderMapper`。 3. 在 Mapper 接口中定义多表查询的方法。你可以使用 MyBatis 提供的注解 `@Results` 和 `@Result` 来指定查询结果的映射关系。例如,如果你想查询所有用户及其对应的订单列表,可以在 `UserMapper` 中添加以下代码: ```java @Select("SELECT * FROM users") @Results({ @Result(property = "id", column = "id"), @Result(property = "username", column = "username"), @Result(property = "orders", column = "id", javaType = List.class, many = @Many(select = "com.example.mapper.OrderMapper.findByUserId")) }) List<User> findAllWithOrders(); ``` 在上面的例子中,`@Results` 注解指定了将查询结果映射到 `User` 对象中,并使用 `@Result` 注解将用户的订单列表查询结果映射到 `orders` 属性中。`@Many` 注解指定了查询用户订单列表的方法为 `OrderMapper.findByUserId`,并使用 `id` 属性作为参数传递。 4. 在 Service 层调用 Mapper 接口方法。你可以创建一个 UserService 类,在其中注入 UserMapper,并调用其多表查询的方法。例如: ```java @Service public class UserService { private final UserMapper userMapper; @Autowired public UserService(UserMapper userMapper) { this.userMapper = userMapper; } public List<User> getAllUsersWithOrders() { return userMapper.findAllWithOrders(); } } ``` 在上述代码中,通过构造函数注入了 UserMapper,并在 `getAllUsersWithOrders` 方法中调用了 `findAllWithOrders` 方法。 这样,你就可以在 Spring Boot 中使用 MyBatis 进行多表查询了。记得配置好数据库连接等相关信息,以及在 Spring Boot 的配置文件中添加相应的配置。 希望对你有所帮助!如有其他问题,请继续提问。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值