JPA入门

1.1 什么是JPA–理解

JPA是Java Persistence API的简称,中文名 ==Java持久层API==,它和学的jdbc或者spring-jdbc同一个层次
持久层:dao层 操作数据库那层
(1)JPA它做持久层API
(2)它是对象关系映射(ORM) 规范
  ORM:对象 关系 映射
(3) JPA的hibernate区别
JPA它是ORM的规范,hibernate是其中一个实现框架	
(4)为什么要JPA,不用jdbc? --比较jpa和jdbc优缺点 -- 面试题
缺点:
​			代码重复性比较高
​			封装数据 比较麻烦
​			移植数据库比较麻烦
​			没有缓存---提高的访问速度
​			面向sql。不是面向对象操作

好处:
​		如果是sql高手,使用jdbc相当爽 操作数据库最底层技术,其他的框架技术都是在jdbc上面进行封装
​		在实现缓存 就需要在内存里面存储数据 --? Map(key,value)

​ JPA:

​		 好处:
​				重复性代码不多 完成crud 只需要调用方法就可以搞定 比如保存  perisit(Employee employee)
​				merge
​				移植数据很方便,到时候只需要配置一些方言就可以搞定
​				提供的世界级缓存支持(一级缓存 二级缓存)
​				不用写sql ,会自动生成
​				面向对象操作,操作对象就相当于操作数据库,但是jpa也是支持sq
​缺点:
​			    有时候,我们不能干预sql的生成,如果你对sql要求比较高,不适合使用jpa,而已数据量太大,比如表里面有上亿条数据,也不是我们jpa。有些性能无法控制 select * from ,怎么办?用mybatis
​		JPA 一些中小型的项目
​		SSM(springmvc spring mybatis)

2 使用JPA

(1)下载
  (2)导入包--了解pom.xml
 (3)配置文件
	persistence.xml配置文件
	配置连接数据库配置	
 (4)测试
得到EntityManagerFactory				

2.2 JPA的完成CRUD(掌握)

新增:persist --事务
修改:merge --事务	
删除:remove --事务	
查询:find	
查询所有:使用jpql语句
工具类抽取

2.3数据库的建表策略

create: 创建策略 表示每次操作的时候,都要先删除表,在创建表 -- 测试上面
create-drop:创建删除策略 每次在操作的时候,先删除表 在创建表 在删除表 --没有用 比较临时表上面
update : 更新策略 --测试最多的 没有会跟我在数据库创建出来 --掌握
validate :  验证策略 -- 验证数据库配置和实体对象配置是否一致,如果不一致就会报错
			比如数据库没有表,有对应的实体对象 报错
			数据库表有多余字段 ,对应的实体对象没有字段 也不会错误
			数据库少字段 username,实体对象有username ,会报错 --假如数据库已经把所有表创建好,我们自己在代码在创建好

2.4 JPA核心的类

Persistence:通过它我们可以得到EntityManagerFactory
EntityManagerFactory:实体管理工厂对象
	作用:它是重量级的对象,因为它和数据库打交道,我们不要频繁的创建和销毁,如果我们频繁创建该对象或者销毁该对象,很损耗系统。尽量满足一个原则,1:1:1

	1的应用程序对应1对应数据库 对应1个entityManagerFactory,尽量可以达到共享的效果,而且要注意线程安全问题(ThreadLocal)
	(1)包含数据库的连接池在这里
	(2)包含二级缓存--(用不到 明天用)
	(3)包含预定义的jpql或者sql (PreparedStatement)--(jpql在用)	
	(4)管理实体的之间关系 Employee(员工) Department(部门) 多对一(第三天)	
	
EntityManager:(经常使用对象) 实体管理对象	
	(1)可以完成CRUD	
	这个对象 你可以频繁创建和销毁,不会销毁太多性能 注意,如果多个操作 都在使用在对象,也会线程安全问题
	(2)维护了一个一级缓存 
	缓存(内存):容器,装数据  操作之前可以把数据,先从数据库读取出来,放入到缓存里面,下次来使用的,不需要查询数据库,直接从缓存里面取数据
	怎么使用一级缓存?
	缓存命中条件:同一个entityManagerFactory 同一个entityManager 同一个OID(实体对象主键id)
	
EntityTransaction(了解)
	实体事务对象:
	事务:一组操作 同生共死
	现在事务 都是同一个库下面事务
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值