GBase 8s 整合hibernate和pagehelpe

GBase 8s 整合hibernate和pagehelpe,第1张

1.pom,配置文件

        org.springframework.boot
        spring-boot-starter-parent
        2.1.4.RELEASE
    

    
        
            org.springframework.boot
            spring-boot-starter-web
        
        
            org.springframework.boot
            spring-boot-starter-data-jpa
        
        
        
        
            gbase
            gbase-connector-java
            4.0.0
        


        
        
            org.mybatis.spring.boot
            mybatis-spring-boot-starter
            2.1.2
        

        
            tk.mybatis
            mapper-spring-boot-starter
            2.0.4
        
        
        
            com.github.pagehelper
            pagehelper-spring-boot-starter
            1.2.3
        

    
spring:
  datasource:
    driver-class-name: com.gbasedbt.jdbc.Driver
    url: jdbc:gbasedbt- sqli://localhost:12345/test:gbasedbtserver=ol_gbasedbt1210
    username: gbasedbt
    password: ****
  jpa:
    database: GBASE8S  #数据库类型
    hibernate:
      ddl-auto: update  #加载hibernate自动更新数据库结构,网站发布正式版本的时候,对数据库现有的数据或表结构进行自动的更新是很危险的。谨记!
      dialect: gbase.hibernate.dialect.GBaseDialect  #方言包配置,引入方言包
    show-sql: true
pagehelper:
  helper-dialect: informix
  reasonable: true  #如果你的pageNum<1时,会查询第一页。如果pageNum>最大的页码数时,会查询最后一页。
  support-methods-arguments: true
2.启动类
@SpringBootApplication
@MapperScan(basePackages = "cn.gbase.mapper")
public class DemoApplication {
    public static void main(String[] args) {
        SpringApplication.run(DemoApplication.class,args);
    }
}
3.实体
//测试hibernate
@Entity
@Table(name = "t_order")
public class Order {

    private static final long serialVersionUID = 1L;

    @Id
    @GeneratedValue(strategy = GenerationType.AUTO) //这里的ID选择自增
    private Long id;

    @Column(name = "num",nullable = false)
    private Long num;


    public Long getId() {
        return id;
    }

    public void setId(Long id) {
        this.id = id;
    }

    public Long getNum() {
        return num;
    }

    public void setNum(Long num) {
        this.num = num;
    }
}

//测试pagehelper
@Table(name = "t_order")
public class Order {
    private Integer id;
    private Integer num;

    public Integer getId() {
        return id;
    }

    public void setId(Integer id) {
        this.id = id;
    }

    public Integer getNum() {
        return num;
    }

    public void setNum(Integer num) {
        this.num = num;
    }
}
4.dao
//测试hibernate
@Repository
public interface OrderRepository extends JpaRepository<Order,Long> {
}
//测试pagehelper
@Mapper
public interface OrderMapper extends BaseMapper<Order> {
}
5.service
public interface OrderService {
    void save(Order order);

    Page<Order> findByPage(int pageNum, int pageSize );

    PageInfo<cn.gbase.pojo.Order> findMapperByPage(int pageNum, int pageSize);
}

//实现类
@Service
public class OrderServiceImpl implements OrderService {
    @Autowired
    private OrderRepository orderRepository;

    @Autowired
    private OrderMapper orderMapper;

    @Override
    public void save(Order order) {
        orderRepository.save(order);
    }

    @Override
    public Page<Order> findByPage(int pageNum, int pageSize) {
        //从 0开始的
        PageRequest page = PageRequest.of(pageNum, pageSize);
        Page<Order> all = orderRepository.findAll(page);
        return all;
    }

    @Override
    public PageInfo<cn.gbase.pojo.Order> findMapperByPage(int pageNum, int pageSize) {
        //开启分页
        PageHelper.startPage(pageNum,pageSize);
        List<cn.gbase.pojo.Order> list = orderMapper.selectAll();
        return new PageInfo<>(list);//封装分页
    }
}

6.controller
@RestController
@RequestMapping("/order")
public class OrderContorller {

    @Autowired
    private OrderService orderService;

    @RequestMapping("/save")
    public void save(@RequestBody Order order){
        orderService.save(order);
    }

    @GetMapping("/page/{pageNum}/{pageSize}")
    public Page<Order> get(@PathVariable("pageNum") Integer pageNum, @PathVariable("pageSize") Integer pageSize){
        return orderService.findByPage(pageNum,pageSize);
    }

    @GetMapping("/mapper/{pageNum}/{pageSize}")
    public PageInfo<cn.gbase.pojo.Order> find(@PathVariable("pageNum") Integer pageNum, @PathVariable("pageSize") Integer pageSize){
        return orderService.findMapperByPage(pageNum,pageSize);
    }
}
7.测试
localhost:8080/order/page/0/2

##hibernate自带分页结果
{
    "content": [
        {
            "id": 1,
            "num": 1
        },
        {
            "id": 2,
            "num": 2
        }
    ],
    "pageable": {
        "sort": {
            "sorted": false,
            "unsorted": true,
            "empty": true
        },
        "offset": 0,
        "pageSize": 2,
        "pageNumber": 0,
        "paged": true,
        "unpaged": false
    },
    "totalElements": 6,
    "totalPages": 3,
    "last": false,
    "number": 0,
    "size": 2,
    "sort": {
        "sorted": false,
        "unsorted": true,
        "empty": true
    },
    "numberOfElements": 2,
    "first": true,
    "empty": false
}
localhost:8080/order/mapper/1/2

##pagehelper分页结果
{
    "pageNum": 1,
    "pageSize": 2,
    "size": 2,
    "startRow": 1,
    "endRow": 2,
    "total": 6,
    "pages": 3,
    "list": [
        {
            "id": 1,
            "num": 1
        },
        {
            "id": 2,
            "num": 2
        }
    ],
    "prePage": 0,
    "nextPage": 2,
    "isFirstPage": true,
    "isLastPage": false,
    "hasPreviousPage": false,
    "hasNextPage": true,
    "navigatePages": 8,
    "navigatepageNums": [
        1,
        2,
        3
    ],
    "navigateFirstPage": 1,
    "navigateLastPage": 3,
    "firstPage": 1,
    "lastPage": 3
}

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/725864.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-04-26
下一篇 2022-04-26

发表评论

登录后才能评论

评论列表(0条)

保存