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
}
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)