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语句的调用。

  • 相关阅读:
    wiki iso88591字符表的解释
    [c]字符1一维数组求长度
    vim 用户配置
    PHP中向浏览器输出图片
    如何及时取消 BackgroundWorker 组件的后台工作
    python basic
    php5.1中的时区设置。
    MyBatis的深入原理分析之1架构设计以及实例分析
    hibernate缓存:一级缓存和二级缓存
    Spring 注解(Annotation)代替XML实现零配置
  • 原文地址:https://www.cnblogs.com/qqzhulu/p/10146152.html
Copyright © 2011-2022 走看看