精华内容
下载资源
问答
  • EDB数据库分页操作源码
  • EDB数据库分页操作源码
  • 使用mybatis对SQLite数据库分页操作

    千次阅读 2014-11-04 16:48:10
    在使用mybatis对SQLite数据库分页操作的时候出现了一些问题,记录下来,以备后用! 传递canshu

    在使用mybatis对SQLite数据库分页操作的时候出现了一些问题,记录下来,以备后用!

    传递参数的问题:我要传递三个参数,pageSize、index、name分别是每页显示的记录数、开始查询的位置和查询条件,前两个是int类型,name是String类型。开始时使用Map<String,Object>封装参数进行传递,但是报错了:datatype mismatch。就是数据类型不匹配,原因是分页sql语句:limit A offSet B中A和B必须要求是以int类型传入,Object他喵的都不行。所以换成了使用注解的方式传递参数。


    dao层



    mapper文件


    若是不使用注解也可以传递,但在mapper文件中就得使用#{0} #{1}等序号,对应参数列表中各个参数的先后顺序。

    展开全文
  • Yii2数据库分页操作方法介绍

    千次阅读 2015-07-02 22:19:08
    本章节将介绍如何如何创建一个从数据表 country 中获取国家数据并显示出来的页面。为了实现这个目标,你将会配置一个数据库连接,创建一个活动记录类,并且创建一个操作及一个视图。
    本章节将介绍如何如何创建一个从数据表 
    country
     中获取国家数据并显示出来的页面。为了实现这个目标,你将会配置一个数据库连接,创建一个活动记录类,并且创建一个操作及一个视图。 
    

    贯穿整个章节,你将会学到:

    • 配置一个数据库连接
    • 定义一个活动记录类
    • 使用活动记录从数据库中查询数据
    • 以分页方式在视图中显示数据

    请注意,为了掌握本章你应该具备最基本的数据库知识和使用经验。尤其是应该知道如何创建数据库,如何通过数据库终端执行 SQL 语句。

    准备数据库

    首先创建一个名为 yii2basic 的数据库,应用将从这个数据库中获取数据。你可以创建 SQLite,MySQL,PostregSQL,MSSQL 或 Oracle 数据库,Yii 内置多种数据库支持。简单起见后面的内容将以 MySQL 为例做演示。

    然后在数据库中创建一个名为 country 的表并插入简单的数据。可以执行下面的语句:

    CREATE TABLE `country` (
      `code` CHAR(2) NOT NULL PRIMARY KEY,
      `name` CHAR(52) NOT NULL,
      `population` INT(11) NOT NULL DEFAULT '0'
    ) ENGINE=InnoDB DEFAULT CHARSET=utf8;
    
    INSERT INTO `Country` VALUES ('AU','Australia',18886000);
    INSERT INTO `Country` VALUES ('BR','Brazil',170115000);
    INSERT INTO `Country` VALUES ('CA','Canada',1147000);
    INSERT INTO `Country` VALUES ('CN','China',1277558000);
    INSERT INTO `Country` VALUES ('DE','Germany',82164700);
    INSERT INTO `Country` VALUES ('FR','France',59225700);
    INSERT INTO `Country` VALUES ('GB','United Kingdom',59623400);
    INSERT INTO `Country` VALUES ('IN','India',1013662000);
    INSERT INTO `Country` VALUES ('RU','Russia',146934000);
    INSERT INTO `Country` VALUES ('US','United States',278357000);

    于是便有了一个名为 yii2basic 的数据库,在这个数据库中有一个包含三个字段的数据表 country,表中有十行数据。

    配置数据库连接

    开始之前,请确保你已经安装了 PHP PDO 扩展和你所使用的数据库的 PDO 驱动(例如 MySQL 的 pdo_mysql)。对于使用关系型数据库来讲,这是基本要求。

    驱动和扩展安装可用后,打开 config/db.php 修改里面的配置参数对应你的数据库配置。该文件默认包含这些内容:

    <?php
    return [
        'class' => 'yii\db\Connection',
        'dsn' => 'mysql:host=localhost;dbname=yii2basic',
        'username' => 'root',
        'password' => '',
        'charset' => 'utf8',
    ];

    config/db/php 是一个典型的基于文件的配置工具。这个文件配置了数据库连接 [[yii\db\Connection]] 的创建和初始化参数,应用的 SQL 查询正是基于这个数据库

    上面配置的数据库连接可以在应用中通过 Yii::$app->db 访问。

    补充:config/db.php 将被包含在应用配置文件 config/web.php 中,后者指定了整个应用如何初始化。请参考配置章节了解更多信息。

    创建活动记录

    创建一个继承自活动记录类的类 Country,把它放在 models/Country.php,去表示和获取 country 表的数据。

    <?php
    
    namespace app\models;
    
    use yii\db\ActiveRecord;
    
    class Country extends ActiveRecord
    {
    }

    这个  Country 类继承自 [[yii\db\ActiveRecord]]。你不用在里面写任何代码。只需要像现在这样,Yii 就能根据类名去猜测对应的 数据表名。

    补充:如果类名和数据表名不能直接对应,可以重写 [[yii\db\ActiveRecord::tableName()|tableName()]] 方法去显式指定相关表名。

    <?php
    use app\models\Country;
    
    // 获取 country 表的所有行并以 name 排序
    $countries = Country::find()->orderBy('name')->all();
    
    // 获取主键为 “US” 的行
    $country = Country::findOne('US');
    
    // 输出 “United States”
    echo $country->name;
    
    // 修改 name 为 “U.S.A.” 并在数据库中保存更改
    $country->name = 'U.S.A.';
    $country->save();

    补充:活动记录是面向对象、功能强大的访问和操作数据库数据的方式。你可以在活动记录章节了解更多信息。除此之外你还可以使用另一种更原生的称做数据访问对象的方法操作数据库数据。

    创建操作

    为了向最终用户显示国家数据,你需要创建一个操作。相比之前小节掌握的在 site 控制器中创建操作,在这里为所有和国家有关的数据新建一个控制器更加合理。新控制器名为CountryController,并在其中创建一个 index 操作,如下:

    <?php
    
    namespace app\controllers;
    
    use yii\web\Controller;
    use yii\data\Pagination;
    use app\models\Country;
    
    class CountryController extends Controller
    {
        public function actionIndex()
        {
            $query = Country::find();
    
            $pagination = new Pagination([
                'defaultPageSize' => 5,
                'totalCount' => $query->count(),
            ]);
    
            $countries = $query->orderBy('name')
                ->offset($pagination->offset)
                ->limit($pagination->limit)
                ->all();
    
            return $this->render('index', [
                'countries' => $countries,
                'pagination' => $pagination,
            ]);
        }
    }

    把上面的代码保存在 controllers/CountryController.php

    index 操作调用了活动记录 Country::find() 方法,去生成查询语句并从 country 表中取回所有数据。为了限定每个请求所返回的国家数量,查询在 [[yii\data\Pagination]] 对象的帮助下进行分页。 Pagination 对象的使命主要有两点:

    • 为 SQL 查询语句设置 offset 和 limit 从句,确保每个请求只需返回一页数据(本例中每页是 5 行)。
    • 在视图中显示一个由页码列表组成的分页器,这点将在后面的段落中解释。

    在代码末尾,index 操作渲染一个名为 index 的视图,并传递国家数据和分页信息进去。

    创建视图

    在 views 目录下先创建一个名为 country 的子目录。这个目录存储所有由 country 控制器渲染的视图。在 views/country 目录下创建一个名为 index.php 的视图文件,内容如下:

    <?php
    use yii\helpers\Html;
    use yii\widgets\LinkPager;
    ?>
    <h1>Countries</h1>
    <ul>
    <?php foreach ($countries as $country): ?>
        <li>
            <?= Html::encode("{$country->name} ({$country->code})") ?>:
            <?= $country->population ?>
        </li>
    <?php endforeach; ?>
    </ul>
    
    <?= LinkPager::widget(['pagination' => $pagination]) ?>

    这个视图包含两部分用以显示国家数据。第一部分遍历国家数据并以无序 HTML 列表渲染出来。第二部分使用 [[yii\widgets\LinkPager]] 去渲染从操作中传来的分页信息。小部件LinkPager 显示一个分页按钮的列表。点击任何一个按钮都会跳转到对应的分页。

    尝试下

    浏览器访问下面的 URL 看看能否工作:

    http://hostname/index.php?r=country/index

    国家列表

    首先你会看到显示着五个国家的列表页面。在国家下面,你还会看到一个包含四个按钮的分页器。如果你点击按钮 “2”,将会跳转到显示另外五个国家的页面,也就是第二页记录。如果观察仔细点你还会看到浏览器的 URL 变成了:

    http://hostname/index.php?r=country/index&page=2

    在这个场景里,[[yii\data\Pagination|Pagination]] 提供了为数据结果集分页的所有功能:

    • 首先 [[yii\data\Pagination|Pagination]] 把 SELECT 的子查询 LIMIT 5 OFFSET 0 数据表示成第一页。因此开头的五条数据会被取出并显示。
    • 然后小部件 [[yii\widgets\LinkPager|LinkPager]] 使用 [[yii\data\Pagination::createUrl()|Pagination::createUrl()]] 方法生成的 URL 去渲染翻页按钮。URL 中包含必要的参数 page 才能查询不同的页面编号。
    • 如果你点击按钮 “2”,将会发起一个路由为 country/index 的新请求。[[yii\data\Pagination|Pagination]] 接收到 URL 中的 page 参数把当前的页码设为 2。新的数据库请求将会以 LIMIT 5 OFFSET 5 查询并显示。

    总结

    本章节中你学到了如何使用数据库。你还学到了如何取出并使用 [[yii\data\Pagination]] 和 [[yii\widgets\LinkPager]] 显示数据。

    下一章中你会学到如何使用 Yii 中强大的代码生成器 Gii,去帮助你实现一些常用的功能需求,例如增查改删(CRUD)数据表中的数据。事实上你之前所写的代码全部都可以由 Gii 自动生成。

    展开全文
  • jdbc操作数据库分页

    2010-04-29 23:33:19
    只是一个简单的通过jdbc连接数据库分页而已
  • ASP操作数据库分页,实现增 删 改 查很详细菜鸟也能看懂。
  • 最详细的分页源代码,注释详细,上手容易,容易理解。SSH框架、MVC模式下的各种分页
  • 主要介绍了asp.net实现access数据库分页的方法,很实用的access操作技巧,需要的朋友可以参考下
  • 易语言EDB数据库分页例程简单的易数据库分页例程易数据库分页+易数据库数据导出文本文件
  • 数据库分页查询

    2013-05-30 01:36:08
    数据库分页查询 在这里主要讲解一下MySQL、SQLServer2000(及SQLServer2005)和ORCALE三种数据库实现分页查询的方法。可能会有人说这些网上都有,但我的主要目的是把这些知识通过我实际的应用总结归纳一下,以方便...
    数据库分页查询
    在这里主要讲解一下MySQL、SQLServer2000(及SQLServer2005)和ORCALE三种数据库实现分页查询的方法。可能会有人说这些网上都有,但我的主要目的是把这些知识通过我实际的应用总结归纳一下,以方便大家查询使用。
    下面就分别给大家介绍、讲解一下三种数据库实现分页查询的方法。
    一、        MySQL  数据库分页查询
    MySQL数据库实现分页比较简单,提供了LIMIT函数。一般只需要直接写到sql语句后面就行了。
    LIMIT子句可以用来限制由SELECT语句返回过来的数据数量,它有一个或两个参数,如果给出两个参数, 第一个参数指定返回的第一行在所有数据中的位置,从0开始(注意不是1),第二个参数指定最多返回行数。例如:
    select * from table WHERE … LIMIT 10; #返回前10行
    select * from table WHERE … LIMIT 0,10; #返回前10行
    select * from table WHERE … LIMIT 10,20; #返回第10-20行数据
     
    二、        SQLServer 数据库分页查询
    SQLServer数据库又分为SQLServer2000和SQLServer2005。一般比较简单的方法是通过TOP函数来实现。如下:
    SELECT TOP 10 * FROM sql WHERE (
    code NOT IN  (SELECT TOP 20 code  FROM TestTable  ORDER BY id))
     ORDER BY ID
    这条语句,从理论上讲,整条语句的执行时间应该比子句的执行时间长,但事实相反。因为,子句执行后返回的是20条记录,而整条语句仅返回10条语句,所以影响数据库响应时间最大的因素是物理I/O操作。而限制物理I/O操作此处的最有效方法之一就是使用TOP关键词了。TOP关键词是SQL SERVER中经过系统优化过的一个用来提取前几条或前几个百分比数据的词。
    以上语句的 有一个致命的缺点,就是它含有 NOT IN 字样,要换成用 not exists 来代替 not in ,二者的执行效率实际上是没有区别的。
    在以上分页算法中,影响我们查询速度的关键因素有两点: TOP NOT IN TOP 可以提高我们的查询速度,而 NOT IN 会减慢我们的查询速度,所以要提高我们整个分页算法的速度,就要彻底改造 NOT IN ,同其他方法来替代它。
    我们知道,几乎任何字段,我们都可以通过 max( 字段 ) min( 字段 ) 来提取某个字段中的最大或最小值,所以如果这个字段不重复,那么就可以利用这些不重复的字段的 max min 作为分水岭,使其成为分页算法中分开每页的参照物。在这里,我们可以用操作符 “>” “<” 号来完成这个使命。如:

    Select top 10 * from table1 where id>200

      于是就有了如下分页方案:

    select top 
    页大小  *

    from table1 

    where id>

          (select max (id) from 

          (select top ((
    页码 -1)* 页大小 ) id from table1 order by id) as T

           )     

      order by id
     
    这种方法执行多少 始终没有大的降势,后劲仍然很足。尤其对于数据量大的时候,该方法执行速度一点也不会降低。
    使用 TOP 要求主键必须唯一,不能是联合主键。如果是联合主键,则查询出的结果会乱序的。
    目前SQLServer2005提供了一个row_number()函数。 ROW_NUMBER()  就是生成一个顺序的行号 , 而他生成顺序的标准 , 就是后面紧跟的 OVER(ORDER BY ReportID) ,其中 ReportID 可以是联合主键。下面 , 我们看看怎么具体应用这个 RowNo 进行分页 .
    SELECT TOP 10 *  FROM
    (
           SELECT top 10 ROW_NUMBER() OVER (ORDER BY ReportID) AS RowNo 
           FROM TABLE 
          ) AS A
          WHERE RowNo > " + pageIndex*10
    pageIndex 就是我们需要数据的页数 .
     
    但对于 SQLServer2000 的话,如果是联合主键,我还没有解决办法,如果大家有可跟我联系。谢谢大家了。
     
    三、        ORCALE 数据库分页查询
    ORCALE 数据库实现分页查询可以使用 row_number() 函数或者使用 rownum  虚列两种方法。
    第一种:利用分析函数 row_number()  方法
    select * from(
    select t.*,row_number() over (order by t1.id) rowno from TABLE1
    )
    where rowno between 21 and 40;
     
    第二种:直接使用 rownum  虚列
    select * from
    (select t.*,rownum as rowno from TABLE1 )
    where rowno between 10 and 20
    这两种方法比较,显然第二种方法比较好。因为不用 order by 语句,会提高检索数据的速度的,尤其数据量越大时,第二种方法快速检索数据越明显。
    最后提醒大家: oracle中慎用带有order by的分页。尤其是在oracle10g,会出现 会引起混乱,即相同记录会出现在不同页中
    展开全文
  • 数据库分页查询语句

    千次阅读 2019-04-28 17:30:14
    在这里主要讲解一下MySQL、SQLServer2000(及SQLServer2005)和ORCALE三种数据库实现分页查询的方法。可能会有人说这些网上都有,但我的主要目的是把这些知识通过我实际的应用总结归纳一下,以... MySQL 数据库分页查...

    在这里主要讲解一下MySQL、SQLServer2000(及SQLServer2005)和ORCALE三种数据库实现分页查询的方法。可能会有人说这些网上都有,但我的主要目的是把这些知识通过我实际的应用总结归纳一下,以方便大家查询使用。
    下面就分别给大家介绍、讲解一下三种数据库实现分页查询的方法。
    一、       MySQL 数据库分页查询
    MySQL数据库实现分页比较简单,提供了LIMIT函数。一般只需要直接写到sql语句后面就行了。
    LIMIT子句可以用来限制由SELECT语句返回过来的数据数量,它有一个或两个参数,如果给出两个参数, 第一个参数指定返回的第一行在所有数据中的位置,从0开始(注意不是1),第二个参数指定最多返回行数。例如:
    select * from table WHERE … LIMIT 10; #返回前10行
    select * from table WHERE … LIMIT 0,10; #返回前10行
    select * from table WHERE … LIMIT 10,20; #返回第10-20行数据
     
    二、       SQLServer数据库分页查询
    SQLServer数据库又分为SQLServer2000和SQLServer2005。一般比较简单的方法是通过TOP函数来实现。如下:
    SELECT TOP 10 * FROM sql WHERE (
    code NOT IN  (SELECT TOP 20 code  FROM TestTable  ORDER BY id))
     ORDER BY ID
    这条语句,从理论上讲,整条语句的执行时间应该比子句的执行时间长,但事实相反。因为,子句执行后返回的是20条记录,而整条语句仅返回10条语句,所以影响数据库响应时间最大的因素是物理I/O操作。而限制物理I/O操作此处的最有效方法之一就是使用TOP关键词了。TOP关键词是SQL SERVER中经过系统优化过的一个用来提取前几条或前几个百分比数据的词。
    以上语句的有一个致命的缺点,就是它含有NOT IN字样,要换成用not exists来代替not in,二者的执行效率实际上是没有区别的。
    在以上分页算法中,影响我们查询速度的关键因素有两点:TOP和NOT IN。TOP可以提高我们的查询速度,而NOT IN会减慢我们的查询速度,所以要提高我们整个分页算法的速度,就要彻底改造NOT IN,同其他方法来替代它。
    我们知道,几乎任何字段,我们都可以通过max(字段)或min(字段)来提取某个字段中的最大或最小值,所以如果这个字段不重复,那么就可以利用这些不重复的字段的max或min作为分水岭,使其成为分页算法中分开每页的参照物。在这里,我们可以用操作符“>”或“<”号来完成这个使命。如:

    Select top 10 * from table1 where id>200

    于是就有了如下分页方案:

    select top 页大小 *

    from table1

    where id>

    (select max (id) from

    (select top ((页码-1)*页大小) id from table1 order by id) as T

    )

    order by id
     
    这种方法执行多少始终没有大的降势,后劲仍然很足。尤其对于数据量大的时候,该方法执行速度一点也不会降低。
    使用TOP要求主键必须唯一,不能是联合主键。如果是联合主键,则查询出的结果会乱序的。
    目前SQLServer2005提供了一个row_number()函数。ROW_NUMBER() 就是生成一个顺序的行号,而他生成顺序的标准,就是后面紧跟的OVER(ORDER BY ReportID),其中ReportID可以是联合主键。下面,我们看看怎么具体应用这个RowNo进行分页.
    SELECT TOP 10 *  FROM
    (
           SELECT top 10 ROW_NUMBER() OVER (ORDER BY ReportID) AS RowNo
           FROM TABLE
          ) AS A
          WHERE RowNo > " + pageIndex10
    pageIndex就是我们需要数据的页数.
     
    但对于SQLServer2000的话,如果是联合主键,我还没有解决办法,如果大家有可跟我联系。谢谢大家了。
     
    三、       ORCALE数据库分页查询
    ORCALE数据库实现分页查询可以使用row_number()函数或者使用rownum 虚列两种方法。
    第一种:利用分析函数row_number() 方法
    select * from(
    select t.
    ,row_number() over (order by t1.id) rowno from TABLE1
    )
    where rowno between 21 and 40;
     
    第二种:直接使用rownum 虚列
    select * from
    (select t.*,rownum as rowno from TABLE1 )
    where rowno between 10 and 20
    这两种方法比较,显然第二种方法比较好。因为不用order by语句,会提高检索数据的速度的,尤其数据量越大时,第二种方法快速检索数据越明显。
    最后提醒大家:oracle中慎用带有order by的分页。尤其是在oracle10g中,会出现会引起混乱,即相同记录会出现在不同页中。

    作者:星辰
    来源:CSDN
    原文:https://blog.csdn.net/guyong1018/article/details/2183057
    版权声明:本文为博主原创文章,转载请附上博文链接!

    展开全文
  • php /* * mysql数据库 分页类 * @package pagelist * @author yytcpt(无影) * @version 2008-03-27 * @copyrigth http://www.d5s.cn/ */ /* * 分页样式 .page{float: left;font: 11px Arial, ...
  • SQLite基本操作数据库分页查询

    千次阅读 2011-06-03 14:52:00
    然后在数据库上面做分页查询的操作,也就是listview分页.看代码MySQLiteOpenHelper类,继承SQLiteOpenHelper类,是android中操作数据库的辅助类package zuoyeSQLlite.hall;import android.content.Context;import ...
  • 数据库分页详解

    千次阅读 2018-10-22 16:37:29
    greenplum/postgres分页语法 select [*|字段列表] from table_name where expresion [limit {count|all}] [offset start]; --limit:指定select结果的显示条数 --offset:指定数据检索的起始位置 MySQL分页语法 ...
  • 数据库分页查询方法

    2015-05-12 13:33:03
    在这里主要讲解一下MySQL、SQLServer2000(及SQLServer2005)和ORCALE三种数据库实现分页查询的方法。 可能会有人说这些网上都有,但我的...一、 MySQL 数据库分页查询  MySQL数据库实现分页比较简单,提供了LIMIT函
  • hibernate可以封装分页操作,getsession得到query后、list()前可以用query的setFrist....和setMax...方法来分页,两个方法分别传页码和单页数据量。 之前数据量小,并没有发现什么问题,但我知道终将有一天要面对...
  • 数据库常用操作
  • 各种数据库分页查询语句

    千次阅读 2013-06-06 18:04:41
    一、 MySQL 数据库分页查询 MySQL数据库实现分页比较简单,提供了LIMIT函数。一般只需要直接写到sql语句后面就行了。 LIMIT子句可以用来限制由SELECT语句返回过来的数据数量,它有一个或两个参数,如果给出两个...
  • 数据库分页技术

    万次阅读 2007-03-02 17:33:00
    SQL Server 与Access数据库相关分页技术当数据库中的数据量很大时,一般从数据库中获取数据列表时,要求进行分页显示,尤其是在网络中.经典的数据分页方法是:ADO 纪录集分页法,也就是利用ADO自带的分页功能(利用游标...
  • JavaWeb分页显示内容之分页查询的三种思路(数据库分页查询) 转载请注明原文地址:http://www.cnblogs.com/ygj0930/p/6134851.html 在开发过程中,经常做的一件事,也是最基本的事,就是从数据库中查询数据,然后在...
  • 基于Oracle作为后台数据库,在分析普通的查询方式后,提出了一种新的优化查询方法——索引扫描分页技术,通过试验分析,优化后的查询方法在实现分页显示的操作中有明显的提高。
  • 数据分页处理的方式有: (1)客户端(应用程序或浏览器)分页 ...适应场景:客户端与应用服务器网络延时较大,但要求后续操作流畅,如手机GPRS,超远程访问(跨国)等等。 (2)应用服务器分页 将数据从数
  • 数据库分页查询PageHelper

    千次阅读 2018-07-15 10:48:27
    如何使用分页插件 . 引入分页插件 配置拦截器插件 如何在代码中使用 MyBatis 和 Spring 集成示例 Spring Boot 待定 使用方法 引入分页插件 引入分页插件有下面2种方式,推荐使用 Maven 方式。 1). 引入 Jar ...
  • 今天项目中遇到个问题,之前数据量不算多的时候,ListView显示正常,但是当数据量很大得分时候...因此,查了一下,关于数据库分页ListView分页。 对于ListView分页,不管是本地数据查询,还是网络数据获取,都应该是常
  • 不同数据库分页查询的实现

    千次阅读 2018-03-07 16:27:24
    分页查询是数据库查询中经常用到的一项操作,对查询出来的结果进行分页查询可以方便浏览。那么Oracle、SQL Server、MySQL是如何实现查询的呢?本文我们就来介绍这一部分内容。1. SQL Server 分页查询实例:一张表 ...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 176,143
精华内容 70,457
关键字:

数据库分页操作