写了一个简单的查询/分页类

在FleaPHP这些开发框架中已经对数据库操作,分页作了很好的封装.功能强大且易于使用.不过自己写类对于理解OOP总不是一件坏事.

对PHP面向对象编程方面还是新手 所以这个类还有很多不完善的地方.功能也太简单

没有文档,没有注释,就我自己能看懂.以后完善后再发布正式版本.

代码如下:

class Datebase
{
 function __construct()
 {
  require_once("db_config.php"); //包含配置文件
  $this->conn=mysql_pconnect($host,$username,$password);
  $this->datebase=$datebase;
  echo '数据库连接成功<BR>';
 }
 function errorOutput($error)
 {
 echo $error.'<BR>';
 die ('程序运行已停止'); 
 }
 function sqlInput($sql)
 {
  if(empty($sql))
  $this->error('sql语句未定义');
  $my_db=mysql_select_db($this->datebase,$this->conn);
  if(!$my_db)
  $this->errorOutput('数据库选择错误');
  $result=mysql_query($sql,$this->conn);  
  if(!$result)
  $this->errorOutput('SQL查询错误');
  $info=mysql_fetch_array($result);
  return $result;
 }
 function pages($sql,$pagesize,$showpage=1)
 {
  $result=$this->sqlInput($sql);
  $numRows=mysql_num_rows($result);
  $allpages=intval($numRows/$pagesize);  
        if ($numRows%$pagesize)
        $allpages++;
        if($showpage<1||$showpage>$allpages)
        $this->errorOutput('非法的页码请求');
        $offset=$pagesize*($showpage - 1);
        $pagesql=$sql.' limit '. $offset.','.$pagesize;
        $pageresult=$this->sqlInput($pagesql);
        if(!$result)
        $this->errorOutput('分页查询错误');
        return $result;
 }
}
$sql='select * from news';
$a= new Datebase();
$result=$a->sqlInput($sql);
$resultpage=$a->pages($sql,12,1);

另外还有一个数据库配置文件 db_config.php

$datebase='mysql';
$username='root';
$password=' ';
$host='localhost';

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 好的。 如果要在 Spring Boot 中实现分页查询,你需要做以下几件事: 1. 在 pom.xml 中添加对 Spring Data JPA 的依赖。 2. 在实体中添加分页信息。 3. 在数据访问层中编分页查询。 4. 在控制器中编分页查询的方法。 首先,在 pom.xml 中添加对 Spring Data JPA 的依赖: ``` <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-jpa</artifactId> </dependency> ``` 然后,在实体中添加分页信息,例如: ``` import org.springframework.data.domain.Page; import org.springframework.data.domain.Pageable; ... public Page<Entity> findAll(Pageable pageable); ``` 接着,在数据访问层中编分页查询,例如: ``` import org.springframework.data.domain.Page; import org.springframework.data.domain.Pageable; import org.springframework.data.jpa.repository.JpaRepository; public interface EntityRepository extends JpaRepository<Entity, Long> { Page<Entity> findByNameContaining(String name, Pageable pageable); } ``` 最后,在控制器中编分页查询的方法,例如: ``` import org.springframework.data.domain.Page; import org.springframework.data.domain.Pageable; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.RestController; @RestController public class EntityController { @Autowired private EntityRepository repository; @GetMapping("/entities") public Page<Entity> getEntities(@RequestParam(name = "name", required = false) String name, Pageable pageable) { if (name != null) { return repository.findByNameContaining(name, page ### 回答2: Spring Boot是一个基于Spring框架的快速开发框架,简化了Java Web应用的构建和部署过程。在Spring Boot中,我们可以使用Spring Data JPA和Spring MVC来实现分页查询。 首先,我们需要在pom.xml文件中添加相关的依赖,如Spring Boot Starter Data JPA和Spring Boot Starter Web。然后,创建一个实体,用于映射数据库中的表结构,并在该实体上使用JPA的相关注解。 接下来,我们创建一个Repository接口,继承自JpaRepository,并添加一个用于分页查询的方法。该方法需要传入页码和每页显示的记录数,并返回一个Page对象。 在Service层中,我们可以注入该Repository接口,并在方法中调用该接口的分页查询方法,获取到分页结果。最后,将分页结果封装成自定义的返回型,例如一个包含数据列表和总记录数的对象。 在Controller层中,我们可以使用@RequestParam注解来接收前端传入的页码和每页记录数。然后,调用Service层的方法并将结果返回给前端。 最后,我们可以通过Postman等工具发送GET请求,传入页码和每页记录数来进行分页查询。Spring Boot会自动处理分页逻辑,并将查询结果返回给前端。 总结起来,使用Spring Boot实现分页查询的步骤包括:添加相关依赖、创建实体、创建Repository接口、编Service层的方法、编Controller层的方法,并可以通过工具发送请求进行分页查询。通过这种方式,我们可以简化分页查询的实现过程,提高开发效率。 ### 回答3: 在Spring Boot中实现分页查询可以通过使用Spring Data JPA框架来简化开发过程。以下是实现分页查询的步骤: 1. 在项目的pom.xml文件添加Spring Data JPA的依赖: ```xml <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-jpa</artifactId> </dependency> ``` 2. 创建一个实体,并使用`@Entity`注解标识该一个JPA实体。同时,使用`@Table`注解指定实体对应的数据库表名。 ```java @Entity @Table(name = "user") public class User { // 实体的属性和对应数据库表的列 @Id @GeneratedValue(strategy = GenerationType.IDENTITY) private Long id; private String name; // ... // 省略其他属性的定义和相应的getter和setter方法 } ``` 3. 创建一个继承自`JpaRepository`的接口,并使用`@Repository`注解标识该接口为一个数据访问层的接口。该接口中可以定义一些方法来实现CRUD操作,包括分页查询。 ```java @Repository public interface UserRepository extends JpaRepository<User, Long> { // 分页查询用户 Page<User> findByNameContaining(String name, Pageable pageable); } ``` 4. 在控制器中注入`UserRepository`接口,并使用`@RequestMapping`注解定义一个请求接口,用于接收分页查询的参数。 ```java @RestController public class UserController { @Autowired private UserRepository userRepository; @RequestMapping("/users") public Page<User> getUsers(@RequestParam("name") String name, @RequestParam("page") Integer page, @RequestParam("size") Integer size) { // 构建分页请求对象 Pageable pageable = PageRequest.of(page, size); // 执行分页查询 return userRepository.findByNameContaining(name, pageable); } } ``` 以上步骤实现了一个简单的基于Spring Boot的分页查询接口。可以通过发送GET请求`/users?name=xxx&page=0&size=10`来进行分页查询,其中`name`参数为要查询的用户名,`page`参数为当前页数,`size`参数为每页的记录数。返回的结果为一个包含分页信息的`Page`对象,可以通过其中的方法获取总记录数、总页数、当前页数、当前页的数据列表等信息。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值