mybatis-plus @select 动态查询

@Select({"<script> select cor.risk_id,cor.create_by as leader,cor.create_time as put_forward_time," +
            "cor.correct_user_name as handle,cor.update_time as handle_time," +
            "cor.correct_end_time,cor.correct_status,risk.risk_name,rt.risk_name as risk_type,pro.pro_code," +
            "pro.pro_name,pro.pro_leader_name as pro_leader,pt.type_name as pro_type from data_risk_correct cor " +
            "left join data_project_risk risk on cor.risk_id=risk.risk_id " +
            "left join data_risk_type rt on risk.risk_type_id=rt.risk_id " +
            "left join data_project pro on risk.pro_id=pro.pro_id " +
            "left join data_project_type pt on pro.pro_type_id=pt.type_id " +
            "<where>"+
            "<if test='riskCenterVo.riskName != null and riskCenterVo.riskName !=\"\"'>" +
            " and risk.risk_name like concat('%',#{riskCenterVo.riskName},'%')  " +
            "</if>" +
            "<if test='riskCenterVo.proName != null and riskCenterVo.proName !=\"\"'>" +
            " and pro.pro_name like concat('%',#{riskCenterVo.proName},'%')  " +
            "</if>" +
            "<if test='riskCenterVo.proCode != null and riskCenterVo.proCode !=\"\"'>" +
            " and pro.pro_code =#{riskCenterVo.proCode} " +
            "</if>" +
            "<if test='riskCenterVo.correctStatus != null '>" +
            " and cor.correct_status=#{riskCenterVo.correctStatus} " +
            "</if>" +
            "</where>" +
            "and cor.is_delete=0 and cor.correct_user_id=#{userId}" +
            "</script>"})
    List<RiskCenterVo> selectRiskCenterList(@Param("riskCenterVo") RiskCenterVo riskCenterVo,@Param("userId") String userId);

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
### 回答1: @selectMybatis-Plus中的注解之一,用于查询操作。它可以在Mapper接口中的方法上使用,表示该方法是一个查询方法。在方法上使用@select注解后,可以通过指定SQL语句或使用Mybatis-Plus提供的查询构造器来进行查询操作。使用@select注解可以简化查询操作的编写,提高开发效率。 ### 回答2: Mybatis-Plus 是一款对 Mybatis 进行了增强的开源框架,它为我们提供了众多方便快捷的使用功能,其中就包括 @select 注解。 @select 注解是 Mybatis-Plus 提供的一个用于查询的注解,用于声明一个 SQL 查询语句。通过 @select 注解,我们可以更加简洁、方便地编写查询 SQL 语句,使其在执行过程中自动将查询结果映射到目标 Java 实体类中。 @select 注解的使用方式如下: ``` @Mapper public interface MyMapper extends BaseMapper<User> { @Select("select * from user where age = #{age}") List<User> selectByAge(@Param("age") Integer age); } ``` 在这个例子中,@select 注解被声明在 Mapper 接口类的一个查询方法上。该注解内部传入了一个 SQL 查询语句,这个查询语句的参数是一个年龄数值,使用了 #{age} 占位符语法,表示将传入的参数值替换到该位置。查询结果将映射到 User 类型的对象集合中,并返回结果集。 当然,@select 注解还可以传入更为复杂的 SQL 语句,包括 JOIN 连接查询、聚合查询、子查询等等,这需要根据实际场景进行灵活运用。 总之,@select 注解为我们提供了一种简便的方式来编写 SQL 查询语句,大大缩短了我们的开发时间和工作量。它是我们在使用 Mybatis-Plus 进行数据访问时一个非常实用的工具,也是其增强功能的一部分。 ### 回答3: Mybatis-plus是一个基于Mybatis框架的增强工具,它通过注解和简化SQL语法来简化开发,提高效率。其中@selectmybatis-plus中的一个注解,用于实现查询操作。下面将详细介绍@select注解的用法和功能。 一、@select注解的用法 @select注解的用法与mybatis中的select标签类似,不同之处在于,它使用注解的方式来实现查询。 1.1 基本查询 示例代码: ```java @Select("select * from user") List<User> selectAll(); ``` 这段代码表示查询user表中的所有记录,并将查询结果存储在List<User>中。 1.2 条件查询 示例代码: ```java @Select("select * from user where id = #{id}") List<User> selectById(@Param("id") Long id); ``` 这段代码表示根据id查询user表中的记录,并将查询结果存储在List<User>中。其中@Param("id")注解用于指定参数名,#{}表示占位符,用于接收参数值。 1.3 排序查询 示例代码: ```java @Select("select * from user order by age desc") List<User> selectAllOrderByAgeDesc(); ``` 这段代码表示查询user表中的所有记录,并按照age字段降序排序,并将查询结果存储在List<User>中。 1.4 分页查询 示例代码: ```java @Select("select * from user limit #{offset},#{size}") List<User> selectByPage(@Param("offset") Integer offset, @Param("size") Integer size); ``` 这段代码表示分页查询user表中的所有记录,并将查询结果存储在List<User>中。其中#{offset}和#{size}表示占位符,offset表示偏移量,size表示每页大小。 二、@select注解的功能 @select注解可以支持多种查询操作,具有以下功能: 2.1 支持动态SQL语句 @select注解支持动态SQL语句,可以根据不同的情况生成不同的SQL语句。例如: ```java @Select("<script>SELECT * FROM user WHERE 1=1<if test=\"param1 != null\">AND name=#{param1}</if><if test=\"param2 != null\">AND age=#{param2}</if></script>") List<User> selectByCondition(@Param("param1") String param1, @Param("param2") Integer param2); ``` 这段代码表示根据条件查询user表中的记录,并将查询结果存储在List<User>中。其中<if>标签用于判断是否需要拼接SQL语句。 2.2 支持结果映射 @select注解支持结果映射,可以将查询结果转换成指定的对象。例如: ```java @Select("select * from user") @Results({ @Result(property = "id", column = "id"), @Result(property = "name", column = "name"), @Result(property = "age", column = "age") }) List<UserVO> selectAll(); ``` 这段代码表示查询user表中的所有记录,并将查询结果转换成UserVO对象,并将查询结果存储在List<UserVO>中。@Result注解用于指定属性名和字段名的对应关系。 2.3 支持注解参数 @select注解支持注解参数,可以通过@Param注解来指定参数名,例如: ```java @Select("select * from user where age > #{age}") List<User> selectByAge(@Param("age") Integer age); ``` 这段代码表示查询age字段大于指定值的记录,并将查询结果存储在List<User>中。@Param注解用于指定参数名。 总之,@select注解是mybatis-plus中实现查询操作的核心注解之一,具有语法简洁、易于使用、支持动态SQL等特点,可以大大提高开发效率。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值