https://spring.io/projects/spring-data-jpa/

留意依赖,一些注入的包

implementation 'jakarta.persistence:jakarta.persistence-api:3.1.0'

@Entity 标记domain,自动注入,自动在DB中创建表。

@Id
@GeneratedValue(strategy = GenerationType.IDENTITY) 标记domain的唯一标识

@Table(name = “login_user”) 标记domain设置表名称

GenerationType.IDENTITY 声明这个Id非空自增,不用我们单独处理。 参考

分页倒叙查询:

import org.springframework.data.domain.PageRequest;
import org.springframework.data.domain.Sort;
 
public class Example {
 
    public void fetchPagesSortedByIdDesc(int page, int size) {
        // 创建排序规则,按id字段倒序
        Sort sort = Sort.by(Sort.Direction.DESC, "id");
 
        // 创建Pageable对象,包含分页信息和排序规则
        Pageable pageable = PageRequest.of(page, size, sort);
 
        // 使用这个pageable对象进行分页查询
        Page<Entity> entities = yourRepository.findAll(pageable);
        // ... 进行后续处理
    }
}

在Service里面执行原始的SQL

import jakarta.persistence.*;
 
@PersistenceContext  
private EntityManager entityManager;
 
public void dashboard1(){  
    Query query = entityManager.createNativeQuery("SELECT type, sum(amount), sum(income) FROM orders group by type");  
    List<Object[]> list = query.getResultList();  
    System.out.println(list);  
}