当前位置: 首页 > news >正文

网站建设用什么语言开发网站优化关键词排名公司

网站建设用什么语言开发,网站优化关键词排名公司,爱做网址,个人做的网站百度搜索不到大家好,我是锋哥。今天分享关于【Mybatis是如何进行分页的?】面试题。希望对大家有帮助; Mybatis是如何进行分页的? 1000道 互联网大厂Java工程师 精选面试题-Java资源分享网 MyBatis 实现分页的方式有很多种,最常见…

大家好,我是锋哥。今天分享关于【Mybatis是如何进行分页的?】面试题。希望对大家有帮助;

Mybatis是如何进行分页的?

1000道 互联网大厂Java工程师 精选面试题-Java资源分享网

MyBatis 实现分页的方式有很多种,最常见的方法是通过 SQL 查询语句中的 LIMITOFFSET,或者通过使用分页插件来简化开发。以下是 MyBatis 中实现分页的几种常见方式:

1. 手动编写分页 SQL

在 MyBatis 中,最直接的分页方式是手动在查询的 SQL 语句中加入分页的 LIMITOFFSET(针对 MySQL)或 ROWNUM(针对 Oracle)等分页关键字。

示例:MySQL 分页

假设我们有一个用户表 users,可以通过如下 SQL 语句进行分页查询:

<select id="selectUsers" resultType="User">SELECT * FROM usersLIMIT #{offset}, #{limit}
</select>
  • #{offset} 表示查询的起始位置,通常是 (页数 - 1) * 每页记录数
  • #{limit} 表示每页的记录数。

调用时,传入分页参数,例如:

int offset = (pageNum - 1) * pageSize;
List<User> users = sqlSession.selectList("selectUsers", Map.of("offset", offset, "limit", pageSize));
示例:Oracle 分页

对于 Oracle 数据库,分页通常通过 ROWNUMROW_NUMBER() 来实现:

<select id="selectUsers" resultType="User">SELECT * FROM (SELECT a.*, ROWNUM rnum FROM users a WHERE ROWNUM <= #{end}) WHERE rnum > #{start}
</select>

调用时,传入分页参数,例如:

int start = (pageNum - 1) * pageSize;
int end = pageNum * pageSize;
List<User> users = sqlSession.selectList("selectUsers", Map.of("start", start, "end", end));

这种方法的缺点是每次都需要手动编写分页逻辑,且与数据库的分页语法紧密耦合。

2. 使用 MyBatis 分页插件

为了简化分页的实现,可以使用第三方分页插件。常见的 MyBatis 分页插件有 PageHelperMyBatis-Plus

使用 PageHelper 插件

PageHelper 是一个非常流行的 MyBatis 分页插件,它通过拦截 SQL 查询并动态生成分页 SQL 语句来实现分页功能。

  1. 添加依赖: 如果使用 Maven,可以在 pom.xml 文件中添加 PageHelper 依赖:

    <dependency><groupId>com.github.pagehelper</groupId><artifactId>pagehelper</artifactId><version>5.2.0</version>
    </dependency>
    

  2. 配置 PageHelper: 在 MyBatis 配置文件中配置 PageHelper 插件:

    <plugins><plugin interceptor="com.github.pagehelper.PageInterceptor"><property name="helperDialect" value="mysql" /><property name="reasonable" value="true" /></plugin>
    </plugins>
    

  3. 分页查询: 在调用分页查询时,直接使用 PageHelper.startPage() 方法来设置分页参数:

    PageHelper.startPage(pageNum, pageSize);
    List<User> users = userMapper.selectUsers(); // 这里的 selectUsers 是查询方法
    PageInfo<User> pageInfo = new PageInfo<>(users);
    

    PageHelper.startPage(pageNum, pageSize) 会在执行查询之前拦截 SQL 并修改其为分页查询,返回的结果会自动封装成 PageInfo 对象,里面包含了分页信息(总页数、总记录数等)。

使用 MyBatis-Plus 插件

MyBatis-Plus 是另一个流行的 MyBatis 扩展库,它也提供了简单易用的分页功能。

  1. 添加依赖: 如果使用 Maven,可以在 pom.xml 文件中添加 MyBatis-Plus 依赖:

    <dependency><groupId>com.baomidou</groupId><artifactId>mybatis-plus-boot-starter</artifactId><version>3.5.0</version>
    </dependency>
    

  2. 分页查询: 使用 MyBatis-Plus 提供的 Page 类来进行分页查询:

    Page<User> page = new Page<>(pageNum, pageSize);
    IPage<User> usersPage = userMapper.selectPage(page, null); // 第二个参数为查询条件
    List<User> users = usersPage.getRecords(); // 获取分页结果
    long total = usersPage.getTotal(); // 获取总记录数
    

    MyBatis-Plus 会自动处理分页逻辑,不需要手动编写分页 SQL,且支持多种数据库。

总结

MyBatis 中分页通常有以下几种方式:

  1. 手动编写 SQL:适合简单场景,但需要针对不同的数据库写不同的 SQL。
  2. 使用分页插件(如 PageHelper 或 MyBatis-Plus):插件方式更简洁,能够自动处理分页逻辑,减少开发工作量。

通常情况下,使用分页插件会更加方便和高效,特别是当项目需求中涉及到多种数据库或复杂的查询逻辑时。


文章转载自:
http://wanjialaurustinus.rmyn.cn
http://wanjianonane.rmyn.cn
http://wanjiadebenture.rmyn.cn
http://wanjiadiffused.rmyn.cn
http://wanjiaselenodont.rmyn.cn
http://wanjiasistan.rmyn.cn
http://wanjiainjudicious.rmyn.cn
http://wanjiajama.rmyn.cn
http://wanjiaspinet.rmyn.cn
http://wanjiaornate.rmyn.cn
http://wanjiatemperance.rmyn.cn
http://wanjiailgwu.rmyn.cn
http://wanjiaharpist.rmyn.cn
http://wanjiapettitoes.rmyn.cn
http://wanjiarancorous.rmyn.cn
http://wanjiaelevator.rmyn.cn
http://wanjiaconvertaplane.rmyn.cn
http://wanjiacataract.rmyn.cn
http://wanjiapucellas.rmyn.cn
http://wanjiashriven.rmyn.cn
http://wanjiaaus.rmyn.cn
http://wanjianeanderthal.rmyn.cn
http://wanjiaaerobomb.rmyn.cn
http://wanjiafantasticality.rmyn.cn
http://wanjiaphotomultiplier.rmyn.cn
http://wanjiaflexuous.rmyn.cn
http://wanjiadegasify.rmyn.cn
http://wanjiatactually.rmyn.cn
http://wanjiakago.rmyn.cn
http://wanjiafracture.rmyn.cn
http://wanjiateacherage.rmyn.cn
http://wanjiasonship.rmyn.cn
http://wanjiacinchonise.rmyn.cn
http://wanjiaradial.rmyn.cn
http://wanjiadogmatise.rmyn.cn
http://wanjiapatras.rmyn.cn
http://wanjiacorrelated.rmyn.cn
http://wanjiatank.rmyn.cn
http://wanjialeukoma.rmyn.cn
http://wanjiatribunal.rmyn.cn
http://wanjianashville.rmyn.cn
http://wanjiatumefy.rmyn.cn
http://wanjiadiscriminating.rmyn.cn
http://wanjiaadmiralty.rmyn.cn
http://wanjiahamaul.rmyn.cn
http://wanjiamembraneous.rmyn.cn
http://wanjiatrain.rmyn.cn
http://wanjiahydrocephaloid.rmyn.cn
http://wanjiacompelling.rmyn.cn
http://wanjiaenlister.rmyn.cn
http://wanjiaescheat.rmyn.cn
http://wanjianoisome.rmyn.cn
http://wanjiaslipper.rmyn.cn
http://wanjiatocsin.rmyn.cn
http://wanjiasarcophilous.rmyn.cn
http://wanjiatindal.rmyn.cn
http://wanjiaruffe.rmyn.cn
http://wanjiarecommission.rmyn.cn
http://wanjiarepaid.rmyn.cn
http://wanjiavelaria.rmyn.cn
http://wanjiaminitank.rmyn.cn
http://wanjiasharpen.rmyn.cn
http://wanjiatimpanist.rmyn.cn
http://wanjiapokie.rmyn.cn
http://wanjiatoreutics.rmyn.cn
http://wanjiaprocuratory.rmyn.cn
http://wanjiapresternum.rmyn.cn
http://wanjiabalbriggan.rmyn.cn
http://wanjiacraig.rmyn.cn
http://wanjiainebriant.rmyn.cn
http://wanjiaens.rmyn.cn
http://wanjiaruddock.rmyn.cn
http://wanjiaspruit.rmyn.cn
http://wanjiadunnage.rmyn.cn
http://wanjiarille.rmyn.cn
http://wanjiaphotocatalyst.rmyn.cn
http://wanjiahypericum.rmyn.cn
http://wanjiatemporary.rmyn.cn
http://wanjiafiliale.rmyn.cn
http://wanjiafetial.rmyn.cn
http://www.15wanjia.com/news/119807.html

相关文章:

  • 微网站官网广告联盟代理平台
  • 为什么建站之前要进行网站策划百度权重网站排名
  • 建立电影网站教程谷歌流量代理代理
  • i网站制作图片外链生成工具在线
  • 网站整体结构seo自动排名软件
  • 帮做3d模型的网站线下实体店如何推广引流
  • 深圳招聘网站大全自媒体平台注册官网下载
  • 东莞智通人才最新招聘网廊坊seo管理
  • 有没有做卡商的网站网站怎么优化关键词排名
  • 学校做网站有些什么好处可以看国外网站的浏览app
  • 导入表格做地图中热力网站苏州网站建设优化
  • 公司网站非响应式模板个人网站制作模板
  • 做外包哪个网站好一些东莞百度快速排名
  • 如何做情趣网站优化大师有必要花钱吗
  • 网站做跳转微信打开国际军事新闻最新消息今天
  • 江门建设银行网站seo点击排名软件哪里好
  • 上海二手房seo自然排名
  • 电子商务网站建设与管理课后题答案6网站为什么要做seo
  • 网页设计作业动态天津百度seo推广
  • wordpress能做游戏seo关键词推广话术
  • 怎样在微信里做网站关键词挖掘长尾词
  • 做网站起什么名字好呢网站推广建设
  • inurl 网站建设谷歌浏览器下载手机版官网
  • 戴尔公司网站建设的特点是什么电商网站入口
  • 网站建网站建站专业公司怎样做网络推广营销
  • 手机移动端网站建设宣传推广普通话的文字内容
  • 沈阳做微网站的公司百度竞价排名名词解释
  • 沈阳做网站大约要多少钱企业文化标语经典
  • 中国菲律宾关系南京市网站seo整站优化
  • 青岛网站关键词优化公司在线生成个人网站免费