自己加工过的一个分页类

<?php
/**
 * 一个用于Mysql数据库的分页类
*
 *
 * 使用实例:
 * $p = new show_page;  //建立新对像
 * $p->file="ttt.php";  //设置文件名,默认为当前页
 * $p->pvar="pagecount"; //设置页面传递的参数,默认为p
 * $p->setvar(array("a" => '1', "b" => '2')); //设置要传递的参数,要注意的是此函数必须要在 set 前使用,否则变量传不过去
 * $p->set(20,2000,1);  //设置相关参数,共三个,分别为'页面大小'、'总记录数'、'当前页(如果为空则自动读取GET变量)'
 * $p->output(0);   //输出,为0时直接输出,否则返回一个字符串
 * echo $p->limit();  //输出Limit子句。在sql语句中用法为 "SELECT * FROM TABLE LIMIT {$p->limit()}";
 *
 */


class show_page {

    /**
     * 页面输出结果
     *
     * @var string
     */
 var $output;

    /**
     * 使用该类的文件,默认为 PHP_SELF
     *
     * @var string
     */
 var $file;

    /**
     * 页数传递变量,默认为 'p'
     *
     * @var string
     */
 var $pvar = "p";

    /**
     * 页面大小
     *
     * @var integer
     */
 var $psize;

    /**
     * 当前页面
     *
     * @var ingeger
     */
 var $curr;

    /**
     * 要传递的变量数组
     *
     * @var array
     */
 var $varstr;

    /**
     * 总页数
     *
     * @var integer
     */
    var $tpage;

    /**
     * 分页设置
     *
     * @access public
     * @param int $pagesize 页面大小
     * @param int $total    总记录数
     * @param int $current  当前页数,默认会自动读取
     * @return void
 
     */
    function set($pagesize=20,$total,$current=false) {
  global $HTTP_SERVER_VARS,$HTTP_GET_VARS;

  $this->tpage = ceil($total/$pagesize);
  if (!$current) {$current = $HTTP_GET_VARS[$this->pvar];}
  if ($current>$this->tpage) {$current = $this->tpage;}
  if ($current<1) {$current = 1;}

  $this->curr  = $current;
  $this->psize = $pagesize;

  if (!$this->file) {$this->file = $HTTP_SERVER_VARS['PHP_SELF'];}
        if ($this->tpage >= 1) //这是分页的前提,是记录大于1
   {
    $this->output.='共有'.$total.'条记录&nbsp;&nbsp;当前<font color="red">'.$this->curr.'</font>/'.$this->tpage.'页&nbsp;&nbsp;';
    $this->output.='<a href='.$this->file.'?'.$this->pvar.'=0'.($this->varstr).' title="首页">首页</a>&nbsp;';
   if($current!=1) //如果偏移量是0,不显示前一页的连接;
             {
     $f_page=$current-1;
     $this->output.='<a href='.$this->file.'?'.$this->pvar.'='.$f_page.($this->varstr).' title="前一页">前一页</a>&nbsp;';
    }
   if($current<$this->tpage)
    {
    $n_page=$current+1;
    $this->output.='<a href='.$this->file.'?'.$this->pvar.'='.$n_page.($this->varstr).' title="下一页">下一页</a>&nbsp;';
       }
   $this->output.='<a href='.$this->file.'?'.$this->pvar.'='.$this->tpage.($this->varstr).' title="尾页">尾页</a>&nbsp;';
   
   $this->output.="<select onChange=/"javascript:var strurl='".$this->file."?".$this->pvar."="."'+this.options[this.selectedIndex].value+'".$this->varstr."';window.location=strurl/" name=/"page/">";
   for($i=1;$i<=$this->tpage;$i++)
   {
    if($i==$this->curr)
    {
     $this->output.="<option value=/"".$i."/" selected=/"selected/">第".$i."页</option>";
    }
    else
    {
     $this->output.="<option value=/"".$i."/">第".$i."页</option>";
    }
   }
   $this->output.="</select>";  
   }//end if 语句
   else
      {
             $this->output.='&nbsp;尚无任何记录!&nbsp;&nbsp;';
   }
 }

    /**
     * 要传递的变量设置
     *
     * @access public
     * @param array $data   要传递的变量,用数组来表示,参见上面的例子
     * @return void
     */ 
 function setvar($data) {
  foreach ($data as $k=>$v) {
   $this->varstr.='&amp;'.$k.'='.urlencode($v);
  }
 }

    /**
     * 分页结果输出
     *
     * @access public
     * @param bool $return 为真时返回一个字符串,否则直接输出,默认直接输出
     * @return string
     */
 function output($return = false) {
  if ($return) {
   return $this->output;
  } else {
   echo $this->output;
  }
 }

    /**
     * 生成Limit语句
     *
     * @access public
     * @return string
     */
    function limit() {
  return (($this->curr-1)*$this->psize).','.$this->psize;
 }

} //End Class
?> 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
好的,下面是一个使用 Spring Boot 实现分页的示例。 1. 创建实体类 首先,我们需要创建一个实体类,用于映射数据库表中的数据。这里我们以用户表为例,创建一个 User 实体类。 ```java @Entity @Table(name = "user") public class User { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) private Long id; private String name; private Integer age; private String email; // getter 和 setter 略 } ``` 2. 创建 DAO 接口 接下来,我们需要创建一个 DAO 接口,用于操作数据库。这里我们以 JpaRepository 为例,创建一个 UserRepository 接口。 ```java @Repository public interface UserRepository extends JpaRepository<User, Long> { } ``` 3. 创建 Service 类 为了更好地分离业务逻辑和数据访问层,我们需要创建一个 Service 类,用于处理业务逻辑。这里我们以 UserService 为例。 ```java @Service public class UserService { @Autowired private UserRepository userRepository; public Page<User> getUsers(Integer pageNum, Integer pageSize) { Pageable pageable = PageRequest.of(pageNum, pageSize); return userRepository.findAll(pageable); } } ``` 4. 创建 Controller 类 最后,我们需要创建一个 Controller 类,处理 HTTP 请求并返回相应的响应。这里我们以 UserController 为例。 ```java @RestController @RequestMapping("/users") public class UserController { @Autowired private UserService userService; @GetMapping("") public Page<User> getUsers(@RequestParam(defaultValue = "0") Integer pageNum, @RequestParam(defaultValue = "10") Integer pageSize) { return userService.getUsers(pageNum, pageSize); } } ``` 5. 测试 现在我们可以启动应用程序并测试分页功能了。打开浏览器并访问 `http://localhost:8080/users?pageNum=1&pageSize=10`,应该能看到第 2 页的用户信息。 以上就是使用 Spring Boot 实现分页的简单示例。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值