新代码,所有使用场景,什么时候用jpa什么时候用mybatis举例说明
记录创建人
分页
JPA底层原理 类结构
查询 持久化 事务管理器 数据源
二级缓存
druid
dsl 替换mybatis复杂查询
sql打印
超时时间
读写分离
枚举值、时间戳转换处理
sequence
官网学习:https://docs.spring.io/spring-data/jpa/docs/2.2.6.RELEASE/reference/html/#dependencies.train-names
依赖申明:
groupId:org.springframework.data
artifactId:spring-data-jpa
Spring Framework version: 5.2.5.RELEASE or better
JPA :Java persistence API,在Hibernate(目标:Java程序员不懂SQL也可以操作数据库)基础上发展而来
是java持久化【规范】
JDBC 的DAO是面向SQL语句的不是面向对象,100多张表全部都要写SQL
JPA把JDBC做了封装
不论JDBC还是JPA都不适合搞定大数据量处理
JPA有跟多坑,用不好就性能很慢
有20张表则有20个类,20种实例对象,每个对象对应表里的一行数据
JDBC需要考虑缓存数据更新/清理的问题
在国内,是Hibernate和MyBatis的天下
jboss收购了hibernate,所以有的jar以jboss开头命名
方言配置,从这个文件搜索
持久单元名称cn.itsource.jpa在指定实体管理工厂EntityManagerFactory时使用
oracle的第一页分页
自动生成表:
运行结果:
remove:
映射配置
核心API
张三/李四/王五各自属于一个线程
entityManagerFactory创建耗时,而EntityManager不耗时,且非线程安全,每个线程各自创建自己的
一级缓存命中,只查询一次:
一级缓存没有命中,再次查询:
脏数据更新
二级缓存