JPA学习笔记

本文探讨了JPA与MyBatis在Java持久化中的应用,指出JPA作为ORM规范,简化了SQL操作,但不适合大数据处理,并可能影响性能。MyBatis则更灵活,适用于复杂SQL查询。内容涉及JPA的一级、二级缓存,事务管理,以及何时选择JPA或MyBatis的示例。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

新代码,所有使用场景,什么时候用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不耗时,且非线程安全,每个线程各自创建自己的

一级缓存命中,只查询一次:

一级缓存没有命中,再次查询:

脏数据更新

二级缓存

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值