JPA简单入门以及IDEA第一个JPA程序

本文介绍了JPA的基本概念,包括其与Hibernate的关系,JDBC的优缺点,以及JPA的优势。接着展示了如何在IDEA中创建JPA项目,配置自动生成表的策略,并进行了简单的代码测试,探讨了JPA的一级缓存机制。
摘要由CSDN通过智能技术生成

1.JPA简介

1.1 什么是JPA
1.JPA是Java Persistence API的简称。
2.JPA作为 Java EE 5.0 平台标准的 对象关系映射(ORM) 规范
将得到所有 Java EE 服务器的支持。 Sun 这次吸取了之前 EJB 规范惨痛失败的经历,在充分吸收现有 ORM 框架(如Hibernate)的基础上,得到了一个易于使用、伸缩性强的 ORM 规范。
3.从目前的开发社区的反应上看
JPA 受到了极大的支持和赞扬, JPA 作为 ORM 领域标准化整合者的目标已经实现。

1.2.Hibernate和JPA的关系
Hibernate是一个开放源代码的对象关系映射(ORM)框架,它对JDBC进行了非常轻量级(相对于EJB这一套)的对象封装,它将POJO(就是咱们的domain)与数据库表建立映射关系,是一个全自动的orm框架,Hibernate可以自动生成SQL语句,自动执行,使得Java程序员可以随心所欲的使用对象编程思维来操纵数据库。
值得注意的是,JPA是在充分吸收了现有Hibernate、TopLink等ORM框架的基础上发展而来的,具有易于使用、伸缩性强等优点。
简单一句话:JPA是持久化规范,而Hibernate是其实现。
1.3 JDBC的优缺点
如果说JDBC与JPA优能更高:你必需会使用缓存,必需是一个SQL高手
本质:处理Java对象和关系型数据库表之间的转换
优点:操作数据库最底层,性能最高(前提是你要有相应的经验,并且是一个数据库高手)
缺点:
1.使用复杂(重复代码太多)
2.移植数据库很麻烦,改动比较多
主键的生成方式不同(mysql使用自增,oracle使用序列sequence)
分页的sql语句也是不同(mysql使用limit,oracle使用ROWNUM)
3.性能优化得自己处理,没有提供数据的缓存,需要自己实现
4.面向sql语句操作,不是面向对象的
1.4JPA的优缺点
本质:处理Java对象和关系型数据库表之间的转换,只是对JDBC再次做了一层封装
优点:
1.程序员操作很简单,代码简单 entityManager.persist(employee);
2.直接面向持久对象操作
3.提供世界级数据缓存(现在几乎所有的ORM框架的缓存都是学的Hibernate)
一级缓存,二级缓存,查询缓存(空间换速度)
4.数据库移植性很强,很少的修改(通过配置方言搞定)
把各种数据库抽取了一个方言接口
不同数据库实现一个方言接口,如果换了数据库,必须修改方言实现,驱动jar文件,连接数据库信息。
缺点:
1.不能干预sql语句的生成
entityManager.find(User.class, 1L);
find方法默认查询t_user表的所有字段
自动生成select user0_.id,user0_.name,user0_.age from t_user user0_ where user0_.id=?
2.一个项目中,如果对sql语句的优化要求比较高,不适合用JPA(不过可以使用JPA对原生sql的支持来解决)
3.如果一张表中有上亿级别的数据量,也不适合用JPA,其实也不适合用jdbc(可以使用数据库读写分离,分库分表方案解决)。
总结
2.7.总结
1.什么是JPA?java persistence api 对象关系映射(ORM) 规范(持久化)
2.Hibernate和JPA的关系? JPA是规范,Hibernate是它的一个实现。
3.Hibernate是一个完整的对象关系映射框架 mybatis半自动ORM框架
4.什么是ORM? 对象关系映射
5.JDBC与JPA的优缺点?
JDBC操作更加底层,它的性能是完全可控的(前提:有控制它性能的能力)
JPA对JDBC的封装,快速开发,自身已经有了很好的性能优化,兼容各种数据库
缺点:不能干涉SQL生成(有些性能问题无法解决)

2 idea创建JPA程序

新建一个maven项目,这里不勾选就是默认Java项目
在这里插入图片描述这里勾选代表就是web项目
在这里插入图片描述第一次创建的时候建议联网,项目模块和配置文件都需要下载jar包,idea会自动下载

pom.xml文件配置如下

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0<
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值