ORM思想:通过操作实体类来操作数据库表,通过映射关系实现。

注解:

 

 

JPQL:

 调用:

 

sql 中的参数传递也有两种形式:

  1. 使用问号 ?,紧跟数字序列,数字序列从1 开始,如 ?1 接收第一个方法参数的值。
  2. 使用冒号:,紧跟参数名,参数名是通过@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注解)

 

审计: