Mehrere Paging-Methoden von mybatisplus

In der offiziellen Dokumentation sind mehrere Paging-Methoden aufgeführt. Lassen Sie uns nacheinander Beispiele nennen.

IPage<UserVo> selectPageVo(IPage<?> page, Integer state);
// or (class MyPage extends Ipage<UserVo>{ private Integer state; })
MyPage selectPageVo(MyPage page);
// or
List<UserVo> selectPageVo(IPage<UserVo> page, Integer state);

Der Unterschied zwischen diesen drei Mybatis Plus-Paging-Methoden liegt hauptsächlich in der Methode der Parameterübergabe und der Art der zurückgegebenen Ergebnisse.

  1. IPage selectPageVo(IPage<?> page, Integer state)

Diese Methode erfordert die Übergabe eines IPage-Objekts als Paging-Parameter und sein generischer Typ kann eine beliebige Entitätsklasse sein. Der Rückgabewert der Methode ist ebenfalls ein IPage-Objekt, dessen generischer Typ
der UserVo-Typ ist und die Abfrageergebnismenge darstellt.

  1. MyPage selectPageVo(MyPage-Seite)

Diese Methode erfordert die Übergabe eines benutzerdefinierten Paging-Objekts MyPage als Paging-Parameter. Dieses Objekt erbt die
von Mybatis Plus bereitgestellte IPage-Schnittstelle und fügt ein Statusattribut vom Typ Integer hinzu. Der Rückgabewert der Methode ist ebenfalls ein MyPage-Objekt, dessen generischer Typ der UserVo-
Typ ist, der die Abfrageergebnismenge darstellt.

  1. Liste selectPageVo(IPage page, Integer state)

Diese Methode erfordert die Übergabe eines IPage-Objekts als Paging-Parameter. Der generische Typ ist der UserVo-Typ. Der Rückgabewert der Methode ist ein
List-Objekt, das die Abfrageergebnismenge darstellt.

Im Allgemeinen besteht der Kern dieser drei Methoden darin, das von Mybatis Plus bereitgestellte Paging-Plug-In zur Implementierung der Paging-Funktion zu verwenden. Der Unterschied besteht darin, dass die Methoden zum Übergeben von Parametern und zum Zurückgeben von Ergebnissen geringfügig unterschiedlich sind. Wählen Sie einfach die geeignete Methode entsprechend den tatsächlichen Anforderungen.

Die folgenden Beispiele veranschaulichen deren Verwendung.

1. IPage selectPageVo(IPage<?> page, Integer state)

Nehmen wir als Beispiel die Abfrage der Benutzerliste und gehen davon aus, dass wir über eine Benutzer-Entitätsklasse verfügen, die die
ID, den Namen, das Alter und andere Attribute des Benutzers enthält. Die Funktion, die wir implementieren möchten, besteht darin, die Liste aller Benutzer abzufragen, deren Alter größer als der angegebene Wert ist, sie in aufsteigender Reihenfolge nach ID zu sortieren und auf jeder Seite 10 Datensätze anzuzeigen.

Definieren Sie zunächst eine selectUserList()-Methode in der UserMapper-Schnittstelle. Der Code lautet wie folgt:

public interface UserMapper extends BaseMapper<User> {
    
    
    IPage<UserVo> selectUserList(IPage<?> page, Integer age);
}

Rufen Sie dann diese Methode in UserService auf, um eine Paging-Abfrage durchzuführen. Der Code lautet wie folgt:

@Service
public class UserService {
    
    
    @Autowired
    private UserMapper userMapper;
    
    public IPage<UserVo> getUserList(Integer pageNum, Integer age) {
    
    
        IPage<UserVo> page = new Page<>(pageNum, 10, true);
        page.setOrderByAsc("id");
        return userMapper.selectUserList(page, age);
    }
}

Hier wird ein Page-Objekt erstellt, das die aktuelle Seitennummer und die auf jeder Seite angezeigte Nummer angibt und so eingestellt ist, dass es in aufsteigender Reihenfolge nach dem ID-Feld sortiert. Verwenden Sie dann das Page-Objekt als Parameter, um die Methode selectUserList() in UserMapper aufzurufen und die Abfrageergebnisse abzurufen.

Abschließend werden die Anforderungsparameter im Controller empfangen und die Ergebnismenge zurückgegeben. Der Code lautet wie folgt:

@RestController
public class UserController {
    
    
    @Autowired
    private UserService userService;
    
    @GetMapping("/users")
    public Result getUsers(@RequestParam(defaultValue = "1") Integer pageNum,
                           @RequestParam(defaultValue = "18") Integer age) {
    
    
        IPage<UserVo> userList = userService.getUserList(pageNum, age);
        return Result.success(userList);
    }
}

Aus dem obigen Beispiel können wir erkennen, dass diese Methode die Übergabe eines IPage-Objekts als Paging-Parameter erfordert und der zurückgegebene Ergebnismengentyp UserVo ist.

2. MyPage selectPageVo(MyPage-Seite)

Am Beispiel der Abfrage der Bestellliste gehen wir davon aus, dass wir über eine Entitätsklasse „Bestellung“ verfügen, die
Attribute wie Bestell-ID, Benutzer-ID, Bestellnummer usw. enthält. Die Funktion, die wir implementieren möchten, besteht darin, die Bestellliste eines bestimmten Benutzers abzufragen und sie entsprechend der Bestellgenerierungszeit in umgekehrter Reihenfolge anzuordnen, wobei auf jeder Seite 20 Datensätze angezeigt werden.

Definieren Sie zunächst eine selectOrderList()-Methode in der OrderMapper-Schnittstelle. Der Code lautet wie folgt:

public interface OrderMapper extends BaseMapper<Order> {
    
    
    MyPage selectOrderList(MyPage page, Long userId);
}

Hier müssen Sie das benutzerdefinierte Paging-Objekt MyPage verwenden und ein userId-Attribut vom Typ Long hinzufügen. Verwenden Sie dann das userId-Attribut in der Methode zur Abfrage und kapseln Sie die Abfrageergebnisse zur Rückgabe in MyPage.

Rufen Sie dann diese Methode in OrderService auf, um eine Paging-Abfrage durchzuführen. Der Code lautet wie folgt:

@Service
public class OrderService {
    
    
    @Autowired
    private OrderMapper orderMapper;
    
    public MyPage getOrderList(Long userId, Integer pageNum) {
    
    
        MyPage page = new MyPage(pageNum, 20);
        page.setDesc("create_time");
        page.setUserId(userId);
        return orderMapper.selectOrderList(page, userId);
    }
}

Hier wird ein MyPage-Objekt erstellt, die aktuelle Seitennummer und die Anzahl der Anzeigen pro Seite angegeben, die Sortierung in umgekehrter Reihenfolge entsprechend dem Feld create_time eingestellt und die userId auf das MyPage-Objekt gesetzt. Verwenden Sie dann das MyPage-Objekt als Parameter, um die Methode selectOrderList() in OrderMapper aufzurufen und die Abfrageergebnisse abzurufen.

Abschließend werden die Anforderungsparameter im Controller empfangen und die Ergebnismenge zurückgegeben. Der Code lautet wie folgt:

@RestController
public class OrderController {
    
    
    @Autowired
    private OrderService orderService;
    
    @GetMapping("/orders")
    public Result getOrders(@RequestParam(defaultValue = "1") Integer pageNum,
                            @RequestParam Long userId) {
    
    
        MyPage orderList = orderService.getOrderList(userId, pageNum);
        return Result.success(orderList);
    }
}

Aus dem obigen Beispiel können Sie ersehen, dass diese Methode die Verwendung eines benutzerdefinierten Paging-Objekts MyPage erfordert und der zurückgegebene Ergebnismengentyp basierend auf dem generischen MyPage-Typ angegeben wird.

3. Liste selectPageVo(IPage page, Integer state)

Nehmen Sie als Beispiel die Abfrage der Artikelliste. Angenommen, wir haben eine Artikel-Entitätsklasse, die die
ID, den Titel, den Inhalt und andere Attribute des Artikels enthält. Die Funktion, die wir implementieren möchten, besteht darin, die Liste aller Artikel mit dem Status „Veröffentlichung“ abzufragen, sie in umgekehrter Reihenfolge nach Veröffentlichungszeitpunkt zu sortieren und auf jeder Seite 15 Datensätze anzuzeigen.

Definieren Sie zunächst eine selectArticleList()-Methode in der ArticleMapper-Schnittstelle. Der Code lautet wie folgt:

public interface ArticleMapper extends BaseMapper<Article> {
    
    
    List<ArticleVo> selectArticleList(IPage<ArticleVo> page, Integer state);
}

Rufen Sie dann diese Methode in ArticleService auf, um eine Paging-Abfrage durchzuführen. Der Code lautet wie folgt:

@Service
public class ArticleService {
    
    
    @Autowired
    private ArticleMapper articleMapper;
    
    public IPage<ArticleVo> getArticleList(Integer pageNum) {
    
    
        IPage<ArticleVo> page = new Page<>(pageNum, 15);
        page.setDesc("publish_time");
        return articleMapper.selectArticleList(page, 1);
    }
}

Hier wird ein Page-Objekt erstellt, das die aktuelle Seitenzahl und die auf jeder Seite angezeigte Zahl angibt und die Sortierung entsprechend dem Feld „publish_time“ in umgekehrter Reihenfolge festlegt. Verwenden Sie dann das Page-Objekt als Parameter, um die Methode selectArticleList() in ArticleMapper aufzurufen und die Abfrageergebnisse abzurufen.

Abschließend werden die Anforderungsparameter im Controller empfangen und die Ergebnismenge zurückgegeben. Der Code lautet wie folgt:

@RestController
public class ArticleController {
    
    
    @Autowired
    private ArticleService articleService;
    
    @GetMapping("/articles")
    public Result getArticles(@RequestParam(defaultValue = "1") Integer pageNum) {
    
    
        IPage<ArticleVo> articleList = articleService.getArticleList(pageNum);
        return Result.success(articleList);
    }
}

Aus dem obigen Beispiel können wir erkennen, dass diese Methode die Übergabe eines IPage-Objekts mit dem generischen Typ ArticleVo als Paging-Parameter erfordert und der zurückgegebene Ergebnismengentyp ArticleVo ist.

Acho que você gosta

Origin blog.csdn.net/qq_41345584/article/details/130552725
Recomendado
Clasificación