ORM思想:通过操作实体类来操作数据库表,通过映射关系实现。
注解:
JPQL:
调用:
sql 中的参数传递也有两种形式:
- 使用问号 ?,紧跟数字序列,数字序列从1 开始,如 ?1 接收第一个方法参数的值。
- 使用冒号:,紧跟参数名,参数名是通过@Param 注解来确定。
修改:
删:
增:
predicate查询:
分页:
@GetMapping("page/{subject}")
public Page<Teacher> getPage(@PathVariable("subject") String subject)
{
// 第一种方法实例化 Pageable
Pageable pageable1 = PageRequest.of(1, 2);
//第二种实例化 Pageable
Sort sort = Sort.by(Sort.Direction.ASC, "age");
Pageable pageable2 = PageRequest.of(1, 2, sort);
//第三种实例化 Pageable
Pageable pageable3 = PageRequest.of(1, 2, Sort.Direction.DESC, "age");
//可以传入不同的 Pageable,测试效果
Page page = teacherRepositoty.getPage(subject, pageable3);
System.out.println(page.getTotalElements());
System.out.println(page.getTotalPages());
System.out.println(page.hasNext());
System.out.println(page.hasPrevious());
System.out.println(page.getNumberOfElements());
System.out.println(page.getSize());
return page;
}
多表关联:
单向一对一:比如客户表和账户表,一个客户对应一个账户,维护客户对应账户的单向关系
在pojo类里先给外键加注释
双向一对一:
多对一和一对多:比如客户和订单的关系,一个客户可以有多个订单。
多对多和乐观锁(加@version注解)
审计: