GBase 8s 整合hibernate和pagehelpe

2023-11-18

1.pom,配置文件

<parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>2.1.4.RELEASE</version>
    </parent>

    <dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-data-jpa</artifactId>
        </dependency>
        
        <!-- gbase驱动 -->
        <dependency>
            <groupId>gbase</groupId>
            <artifactId>gbase-connector-java</artifactId>
            <version>4.0.0</version>
        </dependency>


        <!--mybatis-->
        <dependency>
            <groupId>org.mybatis.spring.boot</groupId>
            <artifactId>mybatis-spring-boot-starter</artifactId>
            <version>2.1.2</version>
        </dependency>

        <dependency>
            <groupId>tk.mybatis</groupId>
            <artifactId>mapper-spring-boot-starter</artifactId>
            <version>2.0.4</version>
        </dependency>
        <!--分页插件-->
        <dependency>
            <groupId>com.github.pagehelper</groupId>
            <artifactId>pagehelper-spring-boot-starter</artifactId>
            <version>1.2.3</version>
        </dependency>

    </dependencies>
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
}

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

GBase 8s 整合hibernate和pagehelpe 的相关文章

  • 模块电路选型(7)----人机交互模块

    系列文章目录 1 电源模块 2 主控模块 3 传感器模块 4 通信模块 5 电机驱动模块 6 存储模块 7 人机交互模块 文章目录 前言 一 按键 1 触摸按键 前言 送给大学毕业后找不到奋斗方向的你 每周不定时更新 牛客网 构建从学习到职

随机推荐

  • 【line-height】 line-height详解

    1 line height是什么 w3school定义使用line height属性定义行与行之间的距离 也就是一个行的行高 它不允许使用负值 使用在文本行的时候line height 与 font size 的计算值之差 在 CSS 中成
  • PCE投稿要求

    进入PCE的投稿网址 http mc manuscriptcentral com pce 查了一下 大家都建议创建ORCID号 于是按照指示创建了 蓝色笔圈起来的是一些投稿指导 于是打开Instructions Forms Instruct
  • Flink checkPoint和SavePoint

    savepoint和checkpoint都是flink为容错提供的强大功能特性 能够自动或手动保存job的运行状态 两者区别 checkpoint 应用定时触发 用户保存状态 会过期 内部应用失败重启的时候启用 但是手动cancel时 会删
  • nginx配置转发日志

    http include mime types default type application octet stream log format main remote user time local http x Forwarded fo
  • Vue3 icons 图标无效

    问题描述 需要在账号 密码处加上icon图标 但是引用完element plus icons之后 还是不行 不显示icon图标 后面发现 当前版本的emement plus的icon图标不能直接使用了 前置条件 npm install el
  • Go 服务自动收集线上问题现场

    前言 对于 pprof 相信熟悉 Go 语言的程序员基本都不陌生 一般线上的问题都是靠它可以快速定位 但是实际项目中 很多时候我们为了性能都不会开启它 但是出了问题又要靠它来分析 好在 go zero 已经帮我们很好的集成进来了 我们只需要
  • 深度模型压缩论文(03)- Be Your Own Teacher: Improve the Performance of Convolutional Neural Networks via Self

    文章目录 1 摘要和背景 1 1 摘要 1 2 背景 2 方法和贡献 2 1 方法 2 1 1 训练过程 2 1 2 loss介绍 2 2 贡献 3 实验和结果 3 1 实验 3 2 结果 4 总结和展望 4 1 总结 4 2 展望 主要贡
  • 【git】git push 本地项目报错 ssh_dispatch_run_fatal

    1 概述 我的一个项目原本是使用如下命令git下来的 git clone git xxx git 昨天还好还好的 今天发现突然无法push项目了 开始自己发现网络比较慢 后面稍微恢复了一下还是不可以 然后git push的时候报错 ssh
  • mybatis-plus整合alibaba.druid实现多数据源配置

    须知 依托于springboot项目实现 一 添加maven依赖
  • javascript学习笔记-面向对象

    javascript学习笔记 面向对象 JavaScript中 现阶段我们可以采用三种方式创建对象 利用字面量创建对象 利用New Object创建对象 利用构造函数创建对象 一 利用字面量创建对象 var obj uname 张三 age
  • 云安全技术——kvm虚拟化技术

    目录 10 1 kvm简介 10 2 在CentOS 7 图形化界面下安装KVM 使用IDEA开发读写MySQL数据库程序 实验目的 了解 CentOS7图形化界面的部署方法 了解 KVM的组成和作用 了解 KVM的技术架构 了解KVM的安
  • python—scrapy框架爬虫—链家二手房数据

    本文讲解的是scrapy框架爬虫的实例 文章目录 前言 scrapy简介 1 scrapy框架的流程 2 流程简介 操作 1 创建scrapy项目 2 运行 3 代码部分 前言 本文爬取的是链家重庆主城九区的二手房数据 同时将爬取的数据存入
  • linux查看进程绑定cpu核是否成功

    运行top命令 可以看到进程以及进程cpu占有率 然后查看是否有P属性 这个属性用来查看进程绑定的cpu核 这里没有看到cpu占用核心的P属性 运行top后 按 f 键进入top配置界面 然后按上下键选择P选项 此时可以看到P选项前面没有
  • 简单Hexo更换主题教程

    Hexo自带的默认主题不是很好看 我们可以按自己需求更换对应的主题 主题由很多 大家可以使用搜索引擎查找 这里我们演示butterfly主题的安装 前提 需要安装git 需要安装nodejs 步骤 在博客的项目文件夹下打开git bash执
  • LeetCode——1302. 层数最深叶子节点的和

    题目描述 给你一棵二叉树的根节点 root 请你返回层数最深的叶子节点的和 示例 1 输入 root 1 2 3 4 5 null 6 7 null null null null 8 输出 15 示例 2 输入 root 6 7 8 2 7
  • 以太坊公链节点连接节点超时问题排查

    2020年4月1日晚上8点 zabbix报警 以太坊公链三分钟内没有检测到区块数据同步 立即登录到服务器 查看以太坊公链节点数据同步情况 docker logs f public eth tail 10 INFO 04 01 20 17 3
  • 用IDEA创建JavaWeb项目

    文章目录 一 创建web项目 1 打开idea软件 点击界面上的Create New Project 2 进入如下界面 选中 java Enterprise 配置jdk tomcat 勾选Web Application案例 注意勾选生成we
  • 华为交换机的基本配置,看完秒懂

    一 交换机的基本配置 交换机连接方式 本地 计算机COM口 USB口 gt Console线 gt 交换机Console口 远程 Putty SecureCRT Xshell远程管理工具 华为VRP网络操作系统 1 华为的视图模式
  • HTML设计一个水平导航栏,完成水平导航栏下拉列表交互效果的实现。

    HTML设计一个水平导航栏 简单的完成水平导航栏下拉列表交互效果的实现 一 水平导航栏 设计要求 CSS样式分析 hello 大家好 学习之路一小步 如果有不严谨的问题请指出 我会积极学习的 一 水平导航栏 设计要求 1 使用无序列表ul及
  • GBase 8s 整合hibernate和pagehelpe

    1 pom 配置文件