国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

【SpringBoot篇】分頁查詢 | 擴(kuò)展SpringMvc的消息轉(zhuǎn)換器

這篇具有很好參考價值的文章主要介紹了【SpringBoot篇】分頁查詢 | 擴(kuò)展SpringMvc的消息轉(zhuǎn)換器。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。


spring boot 分頁返回查詢結(jié)果,SpringBoot,spring boot,后端,spring,springmvc,java

做了幾個項目,發(fā)現(xiàn)在這幾個項目里面,都實現(xiàn)了分頁查詢效果,所以就總結(jié)一下,方便學(xué)習(xí)

我們基于黑馬程序員的蒼穹外賣來講解分頁查詢的要點

??什么是分頁查詢

分頁查詢是指將大量數(shù)據(jù)按照固定大小的頁進(jìn)行切分,每次查詢只返回一頁數(shù)據(jù),通過不斷翻頁來獲取全部數(shù)據(jù)。

??代碼實現(xiàn)

Result.java

這是一個common類,好多方法都可以使用

package com.sky.result;

import lombok.Data;

import java.io.Serializable;

/**
 * 后端統(tǒng)一返回結(jié)果
 * @param <T>
 */
@Data
public class Result<T> implements Serializable {

    private Integer code; //編碼:1成功,0和其它數(shù)字為失敗
    private String msg; //錯誤信息
    private T data; //數(shù)據(jù)

    public static <T> Result<T> success() {
        Result<T> result = new Result<T>();
        result.code = 1;
        return result;
    }

    public static <T> Result<T> success(T object) {
        Result<T> result = new Result<T>();
        result.data = object;
        result.code = 1;
        return result;
    }

    public static <T> Result<T> error(String msg) {
        Result result = new Result();
        result.msg = msg;
        result.code = 0;
        return result;
    }

}

所有的分頁查詢,我們都統(tǒng)一封裝為PageResult對象,來表示分頁查詢結(jié)果

PageResult.java

package com.sky.result;

import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;

import java.io.Serializable;
import java.util.List;

/**
 * 封裝分頁查詢結(jié)果
 */
@Data
@AllArgsConstructor
@NoArgsConstructor
public class PageResult implements Serializable {

    private long total; //總記錄數(shù)

    private List records; //當(dāng)前頁數(shù)據(jù)集合

}

EmployeeController.java

spring boot 分頁返回查詢結(jié)果,SpringBoot,spring boot,后端,spring,springmvc,java

我們查看接口文檔,發(fā)現(xiàn)接口路徑是GET方式,并且請求參數(shù)是query,不是json,那么就不需要使用注解@ResponseBody了

package com.sky.controller.admin;

import com.sky.constant.JwtClaimsConstant;
import com.sky.dto.EmployeeDTO;
import com.sky.dto.EmployeeLoginDTO;
import com.sky.dto.EmployeePageQueryDTO;
import com.sky.entity.Employee;
import com.sky.properties.JwtProperties;
import com.sky.result.PageResult;
import com.sky.result.Result;
import com.sky.service.EmployeeService;
import com.sky.utils.JwtUtil;
import com.sky.vo.EmployeeLoginVO;
import io.swagger.annotations.ApiOperation;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;

import java.util.HashMap;
import java.util.Map;

/**
 * 員工管理
 */
@RestController
@RequestMapping("/admin/employee")
@Slf4j
public class EmployeeController {

    @Autowired
    private EmployeeService employeeService;
//    @Autowired
//    private JwtProperties jwtProperties;
//
//    /**
//     * 登錄
//     *
//     * @param employeeLoginDTO
//     * @return
//     */
//    @PostMapping("/login")
//    public Result<EmployeeLoginVO> login(@RequestBody EmployeeLoginDTO employeeLoginDTO) {
//        log.info("員工登錄:{}", employeeLoginDTO);
//
//        Employee employee = employeeService.login(employeeLoginDTO);
//
//        //登錄成功后,生成jwt令牌
//        Map<String, Object> claims = new HashMap<>();
//        claims.put(JwtClaimsConstant.EMP_ID, employee.getId());
//        String token = JwtUtil.createJWT(
//                jwtProperties.getAdminSecretKey(),
//                jwtProperties.getAdminTtl(),
//                claims);
//
//        EmployeeLoginVO employeeLoginVO = EmployeeLoginVO.builder()
//                .id(employee.getId())
//                .userName(employee.getUsername())
//                .name(employee.getName())
//                .token(token)
//                .build();
//
//        return Result.success(employeeLoginVO);
//    }
//
//    /**
//     * 退出
//     *
//     * @return
//     */
//    @PostMapping("/logout")
//    public Result<String> logout() {
//        return Result.success();
//    }
//
//    @PostMapping
//    @ApiOperation("新增員工")
//    public Result save(@RequestBody EmployeeDTO employeeDTO){
//        log.info("新增員工:{}",employeeDTO);
//        return Result.success();
//    }

    @GetMapping("/page")
    @ApiOperation("員工分頁查詢")
    public Result<PageResult> page(EmployeePageQueryDTO employeePageQueryDTO){
        log.info("員工分頁查詢,參數(shù)為{}",employeePageQueryDTO);
        PageResult pageResult = employeeService.pageQuery(employeePageQueryDTO);
        //返回給Result
        //返回的對象是pageResult
        return Result.success(pageResult);
    }

}

注意,結(jié)果return的是Result.success(pageResult);
結(jié)果返回的是pageResult對象

在service層擴(kuò)展一下分頁查詢方法

這里pageQuery會報錯,我們再一個分頁查詢接口EmployeeService中完善這個方法

EmployeeService.java

package com.sky.service;

import com.sky.dto.EmployeeDTO;
import com.sky.dto.EmployeeLoginDTO;
import com.sky.dto.EmployeePageQueryDTO;
import com.sky.entity.Employee;
import com.sky.result.PageResult;

public interface EmployeeService {

    //Employee login(EmployeeLoginDTO employeeLoginDTO);

    //void save(EmployeeDTO employeeDTO);

    //分頁查詢
    PageResult pageQuery(EmployeePageQueryDTO employeePageQueryDTO);
}

實現(xiàn)這個接口

EmployeeServiceImpl.java

package com.sky.service.impl;

import com.github.pagehelper.Page;
import com.github.pagehelper.PageHelper;
import com.sky.constant.MessageConstant;
import com.sky.constant.PasswordConstant;
import com.sky.constant.StatusConstant;
import com.sky.context.BaseContext;
import com.sky.dto.EmployeeDTO;
import com.sky.dto.EmployeeLoginDTO;
import com.sky.dto.EmployeePageQueryDTO;
import com.sky.entity.Employee;
import com.sky.exception.AccountLockedException;
import com.sky.exception.AccountNotFoundException;
import com.sky.exception.PasswordErrorException;
import com.sky.mapper.EmployeeMapper;
import com.sky.result.PageResult;
import com.sky.service.EmployeeService;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.util.DigestUtils;

import java.time.LocalDateTime;
import java.util.List;

@Service
public class EmployeeServiceImpl implements EmployeeService {

    @Autowired
    private EmployeeMapper employeeMapper;

    /**
     * 員工登錄
     *
     * @param employeeLoginDTO
     * @return
     */
//    public Employee login(EmployeeLoginDTO employeeLoginDTO) {
//        String username = employeeLoginDTO.getUsername();
//        String password = employeeLoginDTO.getPassword();
//
//        //1、根據(jù)用戶名查詢數(shù)據(jù)庫中的數(shù)據(jù)
//        Employee employee = employeeMapper.getByUsername(username);
//
//        //2、處理各種異常情況(用戶名不存在、密碼不對、賬號被鎖定)
//        if (employee == null) {
//            //賬號不存在
//            throw new AccountNotFoundException(MessageConstant.ACCOUNT_NOT_FOUND);
//        }
//
//        //密碼比對
//        // TODO 后期需要進(jìn)行md5加密,然后再進(jìn)行比對
//        if (!password.equals(employee.getPassword())) {
//            //密碼錯誤
//            throw new PasswordErrorException(MessageConstant.PASSWORD_ERROR);
//        }
//
//        if (employee.getStatus() == StatusConstant.DISABLE) {
//            //賬號被鎖定
//            throw new AccountLockedException(MessageConstant.ACCOUNT_LOCKED);
//        }
//
//        //3、返回實體對象
//        return employee;
//    }
//
//    @Override
//    public void save(EmployeeDTO employeeDTO) {
//        Employee employee=new Employee();
//
//       //對象屬性拷貝
//        BeanUtils.copyProperties(employeeDTO,employee);
//
//        //設(shè)置賬號狀態(tài),默認(rèn)正常狀態(tài)
//        employee.setStatus(StatusConstant.ENABLE);
//
//        //設(shè)置密碼
//        //默認(rèn)密碼為123456
//        employee.setPassword(DigestUtils.md5DigestAsHex(PasswordConstant.DEFAULT_PASSWORD.getBytes()));
//
//        //設(shè)置當(dāng)前記錄的創(chuàng)建時間和修改時間
//        employee.setCreateTime(LocalDateTime.now());
//        employee.setUpdateTime(LocalDateTime.now());
//
//        //設(shè)置當(dāng)前記錄創(chuàng)建人的id和修改人id
//        employee.setCreateUser(BaseContext.getCurrentId());
//        employee.setUpdateUser(BaseContext.getCurrentId());
//
//        employeeMapper.insert(employee);
//    }

    //分頁查詢
    public PageResult pageQuery(EmployeePageQueryDTO employeePageQueryDTO){
        PageHelper.startPage(employeePageQueryDTO.getPage(),employeePageQueryDTO.getPageSize());

        Page<Employee> page=employeeMapper.pageQuery(employeePageQueryDTO);

        long total=page.getTotal();
        List<Employee> records=page.getResult();

        return new PageResult(total,records);
    }

}

spring boot 分頁返回查詢結(jié)果,SpringBoot,spring boot,后端,spring,springmvc,java

這里我們使用了Mybatis的pagehelper插件
要使用這個插件,實現(xiàn)我們在pox.xml文件中導(dǎo)入下面的依賴

      <dependency>
            <groupId>com.alibaba</groupId>
            <artifactId>druid-spring-boot-starter</artifactId>
        </dependency>

使用這個插件,會把我們后面的sql語句進(jìn)行動態(tài)拼接。類似于MySQL的動態(tài)sql,會動態(tài)的把limit關(guān)鍵字拼接進(jìn)去,并且進(jìn)行動態(tài)計算


同理,這里pageQuery會報錯,我們在接口DishMapper中完善這個方法,Mapper層一般與數(shù)據(jù)庫有關(guān)

package com.sky.mapper;

import com.github.pagehelper.Page;
import com.sky.annotation.AutoFill;
import com.sky.dto.DishPageQueryDTO;
import com.sky.entity.Dish;
import com.sky.enumeration.OperationType;
import com.sky.vo.DishVO;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Select;
import org.springframework.beans.factory.annotation.Autowired;

@Mapper
public interface DishMapper {

    /**
     * 根據(jù)分類id查詢菜品數(shù)量
     * @param 
     * @return
     */
//    @Select("select count(id) from dish where category_id = #{categoryId}")
//    Integer countByCategoryId(Long categoryId);
//
//
//    //插入菜品數(shù)據(jù)
//    @AutoFill(value = OperationType.INSERT)
//    void insert(Dish dish);

	//菜品分頁查詢
    Page<DishVO> pageQuery(DishPageQueryDTO dishPageQueryDTO);
}

注意
這里我們傳入的是DishPageQueryDTO,我們看一下下圖
spring boot 分頁返回查詢結(jié)果,SpringBoot,spring boot,后端,spring,springmvc,java

下面我們來編寫動態(tài)sql
對于動態(tài)sql,使用注解進(jìn)行開發(fā)是比較麻煩的(因為我們要使用到動態(tài)標(biāo)簽),所以我們把這段sql寫到xml映射文件中

EmployeeMapper.xml

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
        "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
<mapper namespace="com.sky.mapper.EmployeeMapper">
    <select id="pageQuery" resultType="com.sky.entity.Employee">
        select * from employee
        <where>
            <if test="name!=null and name!=''">
--             動態(tài)拼接
                and name like concat('%',#{name},'%')
            </if>
        </where>
        order by create_time desc
    </select>
</mapper>

?問題

我們發(fā)現(xiàn),界面展示的時間不是我們想要的 年–月–日,而是一大串?dāng)?shù)字,我們應(yīng)該怎么解決呢
spring boot 分頁返回查詢結(jié)果,SpringBoot,spring boot,后端,spring,springmvc,java
使用下面的方法進(jìn)行解決

??解決方法

在WebMvcConfiguration中擴(kuò)展SpringMvc的消息轉(zhuǎn)換器,統(tǒng)一對日期類型進(jìn)行格式化處理

WebMvcConfiguration.java

package com.sky.config;

import com.sky.interceptor.JwtTokenAdminInterceptor;
import com.sky.json.JacksonObjectMapper;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.http.converter.HttpMessageConverter;
import org.springframework.http.converter.json.MappingJackson2HttpMessageConverter;
import org.springframework.web.servlet.config.annotation.InterceptorRegistry;
import org.springframework.web.servlet.config.annotation.ResourceHandlerRegistry;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurationSupport;
import springfox.documentation.builders.ApiInfoBuilder;
import springfox.documentation.builders.PathSelectors;
import springfox.documentation.builders.RequestHandlerSelectors;
import springfox.documentation.service.ApiInfo;
import springfox.documentation.spi.DocumentationType;
import springfox.documentation.spring.web.plugins.Docket;

import java.util.List;

/**
 * 配置類,注冊web層相關(guān)組件
 */
@Configuration
@Slf4j
public class WebMvcConfiguration extends WebMvcConfigurationSupport {

    @Autowired
    private JwtTokenAdminInterceptor jwtTokenAdminInterceptor;
//
//    /**
//     * 注冊自定義攔截器
//     *
//     * @param registry
//     */
//    protected void addInterceptors(InterceptorRegistry registry) {
//        log.info("開始注冊自定義攔截器...");
//        registry.addInterceptor(jwtTokenAdminInterceptor)
//                .addPathPatterns("/admin/**")
//                .excludePathPatterns("/admin/employee/login");
//    }
//
//    /**
//     * 通過knife4j生成接口文檔
//     * @return
//     */
//    @Bean
//    public Docket docket() {
//        ApiInfo apiInfo = new ApiInfoBuilder()
//                .title("蒼穹外賣項目接口文檔")
//                .version("2.0")
//                .description("蒼穹外賣項目接口文檔")
//                .build();
//        Docket docket = new Docket(DocumentationType.SWAGGER_2)
//                .apiInfo(apiInfo)
//                .select()
//                .apis(RequestHandlerSelectors.basePackage("com.sky.controller"))
//                .paths(PathSelectors.any())
//                .build();
//        return docket;
//    }
//
//    /**
//     * 設(shè)置靜態(tài)資源映射
//     * @param registry
//     */
//    protected void addResourceHandlers(ResourceHandlerRegistry registry) {
//        registry.addResourceHandler("/doc.html").addResourceLocations("classpath:/META-INF/resources/");
//        registry.addResourceHandler("/webjars/**").addResourceLocations("classpath:/META-INF/resources/webjars/");
//    }
//    

    //擴(kuò)展springmvc的消息轉(zhuǎn)換器

    protected void extendMessageConverters(List<HttpMessageConverter<?>> converters){
        log.info("擴(kuò)展消息轉(zhuǎn)換器");
        //創(chuàng)建一個消息轉(zhuǎn)換器對象
        MappingJackson2HttpMessageConverter converter=new MappingJackson2HttpMessageConverter();
        //需要為消息轉(zhuǎn)換器設(shè)置一個對象轉(zhuǎn)換器,對象轉(zhuǎn)換器可以將Java對象轉(zhuǎn)換為json數(shù)據(jù)
        converter.setObjectMapper(new JacksonObjectMapper());
        //將自己的消息轉(zhuǎn)換器加入到容器里面
        converters.add(0,converter);
    }
}

序列化:從Java對象生成json的過程
反序列化:把json解析為Java對象的過程


在上一段代碼中,我們使用了對象轉(zhuǎn)換器,但是我們應(yīng)該怎么創(chuàng)建一個對象轉(zhuǎn)換器呢
創(chuàng)建對象轉(zhuǎn)換器

JacksonObjectMapper.java
下面的代碼都是比較固定的

package com.sky.json;

import com.fasterxml.jackson.databind.DeserializationFeature;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.fasterxml.jackson.databind.module.SimpleModule;
import com.fasterxml.jackson.datatype.jsr310.deser.LocalDateDeserializer;
import com.fasterxml.jackson.datatype.jsr310.deser.LocalDateTimeDeserializer;
import com.fasterxml.jackson.datatype.jsr310.deser.LocalTimeDeserializer;
import com.fasterxml.jackson.datatype.jsr310.ser.LocalDateSerializer;
import com.fasterxml.jackson.datatype.jsr310.ser.LocalDateTimeSerializer;
import com.fasterxml.jackson.datatype.jsr310.ser.LocalTimeSerializer;

import java.time.LocalDate;
import java.time.LocalDateTime;
import java.time.LocalTime;
import java.time.format.DateTimeFormatter;

import static com.fasterxml.jackson.databind.DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES;

/**
 * 對象映射器:基于jackson將Java對象轉(zhuǎn)為json,或者將json轉(zhuǎn)為Java對象
 * 將JSON解析為Java對象的過程稱為 [從JSON反序列化Java對象]
 * 從Java對象生成JSON的過程稱為 [序列化Java對象到JSON]
 */
public class JacksonObjectMapper extends ObjectMapper {

    public static final String DEFAULT_DATE_FORMAT = "yyyy-MM-dd";
    //public static final String DEFAULT_DATE_TIME_FORMAT = "yyyy-MM-dd HH:mm:ss";
    public static final String DEFAULT_DATE_TIME_FORMAT = "yyyy-MM-dd HH:mm";
    public static final String DEFAULT_TIME_FORMAT = "HH:mm:ss";

    public JacksonObjectMapper() {
        super();
        //收到未知屬性時不報異常
        this.configure(FAIL_ON_UNKNOWN_PROPERTIES, false);

        //反序列化時,屬性不存在的兼容處理
        this.getDeserializationConfig().withoutFeatures(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES);

        SimpleModule simpleModule = new SimpleModule()
                .addDeserializer(LocalDateTime.class, new LocalDateTimeDeserializer(DateTimeFormatter.ofPattern(DEFAULT_DATE_TIME_FORMAT)))
                .addDeserializer(LocalDate.class, new LocalDateDeserializer(DateTimeFormatter.ofPattern(DEFAULT_DATE_FORMAT)))
                .addDeserializer(LocalTime.class, new LocalTimeDeserializer(DateTimeFormatter.ofPattern(DEFAULT_TIME_FORMAT)))
                .addSerializer(LocalDateTime.class, new LocalDateTimeSerializer(DateTimeFormatter.ofPattern(DEFAULT_DATE_TIME_FORMAT)))
                .addSerializer(LocalDate.class, new LocalDateSerializer(DateTimeFormatter.ofPattern(DEFAULT_DATE_FORMAT)))
                .addSerializer(LocalTime.class, new LocalTimeSerializer(DateTimeFormatter.ofPattern(DEFAULT_TIME_FORMAT)));

        //注冊功能模塊 例如,可以添加自定義序列化器和反序列化器
        this.registerModule(simpleModule);
    }
}

這樣子就實現(xiàn)了分頁查詢效果

spring boot 分頁返回查詢結(jié)果,SpringBoot,spring boot,后端,spring,springmvc,java文章來源地址http://www.zghlxwxcb.cn/news/detail-771374.html

到了這里,關(guān)于【SpringBoot篇】分頁查詢 | 擴(kuò)展SpringMvc的消息轉(zhuǎn)換器的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實不符,請點擊違法舉報進(jìn)行投訴反饋,一經(jīng)查實,立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費用

相關(guān)文章

  • 使用Spring MVC的消息轉(zhuǎn)換器設(shè)置日期格式

    在后端返回給前端的JSON數(shù)據(jù)中含有日期類型的字段時,如何指定該類型的日期的顯示格式。 使用Spring MVC的消息轉(zhuǎn)換器即可。 添加配置類,并繼承 WebMvcConfigurationSupport 類,重寫 extendMessageConverters 自定義對象轉(zhuǎn)換器 JacksonObjectMapper ,設(shè)置對應(yīng)日期類型的轉(zhuǎn)換格式 隨后問題將會

    2024年02月16日
    瀏覽(85)
  • RabbitMQ-同步和異步通訊、安裝和入門案例、SpringAMQP(5個消息發(fā)送接收Demo,jackson消息轉(zhuǎn)換器)

    RabbitMQ-同步和異步通訊、安裝和入門案例、SpringAMQP(5個消息發(fā)送接收Demo,jackson消息轉(zhuǎn)換器)

    微服務(wù)間通訊有同步和異步兩種方式: 同步通訊:就像打電話,需要實時響應(yīng)。 異步通訊:就像發(fā)郵件,不需要馬上回復(fù)。 兩種方式各有優(yōu)劣,打電話可以立即得到響應(yīng),但是你卻不能跟多個人同時通話。發(fā)送郵件可以同時與多個人收發(fā)郵件,但是往往響應(yīng)會有延遲。 1.

    2024年02月11日
    瀏覽(16)
  • 如何使用SpringBoot 自定義轉(zhuǎn)換器

    如何使用SpringBoot 自定義轉(zhuǎn)換器

    ??前言 本篇博文是關(guān)于SpringBoot 自定義轉(zhuǎn)換器的使用,希望你能夠喜歡?? ??個人主頁:晨犀主頁 ??個人簡介:大家好,我是晨犀,希望我的文章可以幫助到大家,您的滿意是我的動力???? ??歡迎大家:這里是CSDN,我總結(jié)知識的地方,歡迎來到我的博客,感謝大家的觀

    2024年02月12日
    瀏覽(22)
  • SpringBoot復(fù)習(xí):(59)自定義類型轉(zhuǎn)換器

    一、自定義類型轉(zhuǎn)換器: 二、將自定義類型轉(zhuǎn)換器注冊到Spring boot 三、請求測試:

    2024年02月10日
    瀏覽(26)
  • 【SpringBoot筆記35】SpringBoot自定義Converter轉(zhuǎn)換器和Formatter格式化器

    這篇文章,主要介紹SpringBoot如何自定義Converter轉(zhuǎn)換器和Formatter格式化器。 目錄 一、數(shù)據(jù)轉(zhuǎn)換器Converter 1.1、自定義Converter轉(zhuǎn)換器 1.2、配置自定義的Converter

    2024年02月15日
    瀏覽(26)
  • java springboot整合MyBatis實現(xiàn)分頁查詢以及帶條件的分頁查詢

    java springboot整合MyBatis實現(xiàn)分頁查詢以及帶條件的分頁查詢

    之前的文章 java springboot整合MyBatis做數(shù)據(jù)庫查詢操作操作了springboot整合MyBatis,然后簡單做了個按id查詢的操作 那么 我們按上文搭建起的環(huán)境繼續(xù) 我們直接在staffDao接口中聲明一個分頁函數(shù) 這里 我們直接在 sql語句中寫limit 分頁邏輯 參數(shù)是方法接收的 這個函數(shù)接收兩個參數(shù)

    2024年02月10日
    瀏覽(22)
  • Springboot整合Elasticsearch新版分頁查詢

    其它插入、刪除、簡單查詢都可以通過Repository調(diào)用方法查詢。 Elasticsearch現(xiàn)在的新版本已經(jīng)棄用了ElasticsearchTemplate類,Repository里原來的search方法也已經(jīng)棄用了。下面是使用ElasticsearchRestTemplate類實現(xiàn)的分頁查詢 代碼

    2024年02月11日
    瀏覽(16)
  • SpringBoot整合ElasticSearch實現(xiàn)分頁查詢

    SpringBoot整合ElasticSearch實現(xiàn)分頁查詢

    本文使用SpringBoot整合ElasticSearch實現(xiàn)分頁查詢 還是繼續(xù)使用spring-boot-starter-data-elasticsearch來實現(xiàn)分頁查詢操作 數(shù)據(jù)準(zhǔn)備 使用ElasticsearchRestTemplate來實現(xiàn) 程序結(jié)果 使用ElasticsearchOperations來實現(xiàn) 程序結(jié)果 本文記錄了SpringBoot整合ElasticSearch來實現(xiàn)分頁查詢的兩種方式

    2024年01月25日
    瀏覽(19)
  • ES(Elasticsearch)+SpringBoot實現(xiàn)分頁查詢

    1.ES介紹 ??ES作為一個搜索工具,寄托于Lucene之上,提供了方便的數(shù)據(jù)存儲和搜索服務(wù),一般的用它來作為網(wǎng)頁數(shù)據(jù)索引以及存儲用戶畫像(即用戶標(biāo)簽)數(shù)據(jù),可以提供復(fù)具有復(fù)雜的查詢條件的服務(wù)。例如在網(wǎng)頁索引中,通過倒排的方式索引的方式,對文檔進(jìn)行分詞存儲,

    2024年02月16日
    瀏覽(24)
  • springboot和vue:七、mybatis/mybatisplus多表查詢+分頁查詢

    springboot和vue:七、mybatis/mybatisplus多表查詢+分頁查詢

    mybatisplus實際上只對單表查詢做了增強(qiáng)(速度會更快),從傳統(tǒng)的手寫sql語句,自己做映射,變?yōu)榉庋b好的QueryWrapper。 本篇文章的內(nèi)容是有兩張表,分別是用戶表和訂單表,在不直接在數(shù)據(jù)庫做表連接的情況下,通過后臺代碼完成①查詢訂單的同時查到該訂單所屬的用戶,②

    2024年02月07日
    瀏覽(21)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包