mybatis でのページングにはどのような方法がありますか?

藏色散人
リリース: 2023-03-13 13:52:02
オリジナル
2458 人が閲覧しました

mybatis でのページングの 3 つの方法は次のとおりです: 1. "select * from users limit startIndex,pageSize;" などのコア ステートメントでページング制限を使用します; 2. 次のようなステートメントで RowBounds を使用してページングを実装します。 "List getUserLRowBounds();"; 3. ページング プラグイン「PageHelper」を使用してこれを実現します。

mybatis でのページングにはどのような方法がありますか?

このチュートリアルの動作環境: Windows 10 システム、Dell G3 コンピューター。

mybatis でのページングにはどのような方法がありますか?

#MyBatis で一般的に使用されるページング方法#なぜページネーションをするのか?

フロントエンドでデータを表示する必要がある場合、大量のデータと一度の表示により、ページ上に大量のデータが表示され、読み込みが完了しない可能性がありますこの問題は、特定の数に従って膨大なデータを表示することで非常にうまく解決でき、次のページまたは前のページをクリックして他のデータを表示することもでき、より効率的です。 !

mybatis でよく使われるページング クエリをいくつか紹介しましょう。

まず、データベース内のすべてのデータを確認します。詳細コードにはコメントがあります


mybatis でのページングにはどのような方法がありますか?##1. ページング制限を使用します

sql使用的核心语句
ログイン後にコピー
-- 语法:表示从startIndex下标开始,一页显示pageSize个
select * from users limit startIndex,pageSize;
-- 语法:表示显示[0,n]范围的数据
select * from users limit n;
ログイン後にコピー

Mybatis を使用してページングを実装し、SQL に基づいて実装します

インターフェイスの記述

 //分页查询
    List<User> getUserLImit(Map<String,Object> map);
ログイン後にコピー
Mapper.xmlの記述

<!--    分页查询-->
    <select id="getUserLImit" parameterType="map" resultType="pojo.User">
        select * from firend_mq.users limit #{startIndex},#{pageSize}    </select>
ログイン後にコピー

テスト クラス

    //测试分页查询
    @Test
    public  void getUserLImit(){
        SqlSession sqlSession = Mybatisutil.getSqlSession();
        UserDao mapper = sqlSession.getMapper(UserDao.class);

        Map<String, Object> map = new HashMap<>();
        map.put("startIndex",0);
        map.put("pageSize",3);
        List<User> userLImit = mapper.getUserLImit(map);
        for (User user : userLImit) {
            System.out.println(user);
        }
        sqlSession.close();
    }
ログイン後にコピー

クエリ結果:

mybatis でのページングにはどのような方法がありますか?2. RowBounds ページングの実装

RowBounds クラス オブジェクトに基づく実装、Javaコードに基づいています

インターフェイスの記述

//RowBounds实现分页查询
    List<User> getUserLRowBounds();
ログイン後にコピー
Mapper.xmlの記述、クエリは実際にはすべてのユーザーです

   <!--   RowBounds 分页查询-->
    <select id="getUserLRowBounds"  resultType="pojo.User">
        select * from firend_mq.users    </select>
ログイン後にコピー

テストクラス

    //RowBounds分页查询
    @Test
    public  void getUserLRowBounds(){
        SqlSession sqlSession = Mybatisutil.getSqlSession();
        //RowBounds对象  参数(起点,个数)
        RowBounds rowBounds = new RowBounds(2, 3);

        //通过java代码层面实现分页,第一个参数是接口类的方法路径
        List<User> userlist = sqlSession.selectList("dao.UserDao.getUserLRowBounds", null, rowBounds);
        for (User user : userlist) {
            System.out.println(user);
        }
        sqlSession.close();
    }
ログイン後にコピー

結果:

mybatis でのページングにはどのような方法がありますか?3. ページング プラグインを使用して

# を実現します興味がある場合は、プラグインの公式 Web サイトのリンクを見つけて投稿してください。公式の使用法ドキュメントがありますので、自分で学習してください。

PageHelper ページング プラグインmybatis でのページングにはどのような方法がありますか?

以上がmybatis でのページングにはどのような方法がありますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!