zoukankan      html  css  js  c++  java
  • springcloud 复杂sql查询

    springcloud有自动生成sql的功能,不需要手写简单的sql语句实现,复杂的sql查询需要通过手写sql语句实现查询功能;

    eg:在controller层

    @RestController
    @RequestMapping("api")
    public class MemberController {

    @RequestMapping(value = "v2/member/member/messageList") // 用户消息首页列表,未使用
    public Object messageList(
    @RequestParam(required = false, defaultValue = PageConstants.DEFAULT_PAGE_NUMBER) Integer page,

    //required = false  page可以不赋值,PageConstants.DEFAULT_PAGE_NUMBER为常量
    @RequestParam(required = false, defaultValue = PageConstants.DEFAULT_PAGE_SIZE) Integer size,
    HttpServletRequest httpServletRequest) {

    // 通知公告
    List<AlumniNotice> alumniNoticeList = new ArrayList<>();

    alumniNoticeList = alumniNoticeService.getListByAlumniAssociationId(alumniId, page, size);
    map.put("alumniNoticeList", alumniNoticeList);
    return APIResult.createSuccess(map);
    }

    在serviceImpl层:

    @Service
    public class AlumniNoticeServiceImpl {
    @Autowired
    private AlumniNoticeRepository alumniNoticeRepository;

    public List<AlumniNotice> getListByAlumniAssociationId(String alumniAssociationId, Integer page, Integer size) {
    // 引入过滤掉公告通知的常量
    Integer excludedStatus = MemberMessageGlobalUtils.MEMBER_MESSAGE_DELETED;
    // 引入对公告通知进行排序的常量
    Integer sortStatus = MemberMessageGlobalUtils.MEMBER_MESSAGE_DECIDED;
    /**
    * 通过alumniAssociationId,expectedStatus、sortStatus,page,size查询公告通知的方法
    */
    return alumniNoticeRepository.findByAlumniAssociationId(alumniAssociationId, excludedStatus, sortStatus, page,
    size);
    }
    }

    在repository层:

    @Repository
    public interface AlumniNoticeRepository extends JpaRepository<AlumniNotice, Integer> {
    AlumniNotice findById(String id);

    /**
    * 通过sql语句 查询符合alumni_association_id、status条件的公告通知集合,并对集合过滤、按时间进行排序、分页显示

    *?number   为sql映射到方法中的第number个元素,分页显示时,注意size后无“;”
    */

    @Query(value = "SELECT * FROM alumni_notice an WHERE (an.alumni_association_id) = (?1) AND "
    + "(an.status) &(?2) !=(?2) ORDER BY ((an.status) &(?3))DESC,create_time DESC limit ?4 , ?5", nativeQuery = true)
    List<AlumniNotice> findByAlumniAssociationId(String alumniAssociationId, Integer excludedStatus, Integer sortStatus,
    Integer page, Integer size);
    }

    通过以上代码完成springcloud复杂sql语句的调用。

  • 相关阅读:
    02-17 位图验证码(一般处理程序)+AJAX
    02-18 报表
    SQLite 函数大全
    SQLite中的时间日期函数(转)
    DES,AeS加解密,MD5,SHA加密
    suspendlayout
    AES--高级数据加密标准
    C#中Validating和Validated事件
    Net操作Excel(终极方法NPOI)
    decimal,float和double的区别
  • 原文地址:https://www.cnblogs.com/qqzhulu/p/10146152.html
Copyright © 2011-2022 走看看