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);
}