图解JavaJDBC和JPA的区别
1. JDBC和JPA的区别
不同标准:jdbc是数据库的统⼀接⼝标准;jpa是orm框架的统⼀接⼝标准。
⽤法区别:jdbc更注重数据库,orm则更注重于java代码,但是实际上jpa实现的框架底层还是⽤jdbc去和数据库打交道。
2. JDBC(Java DataBase Connectivity)
是java连接数据库操作的原⽣接⼝。JDBC对Java程序员⽽⾔是API,为数据库访问提供标准的接⼝。由各个数据库⼚商及第三⽅中间件⼚商依照JDBC规范为数据库的连接提供的标准⽅法。
优点:运⾏速度最快,所有操作数据库的技术底层都是jdbc写的
缺点:重复代码多,耦合性⾼,开发效率低,更换数据库⽐较繁琐
3. ORM(Object-Relational Mapping)
对象关系映射。简单的说:ORM就是建⽴实体类和数据库表之间的关系,从⽽达到操作实体类就相当于
操作数据库表的⽬的。
优点:减少重复性代码。
常见的orm框架有:
Hibernate、spring data jpa、open jpa
Hibernate
Hibernate是⼀个开源的对象关系映射框架,它对JDBC进⾏了⾮常轻量级的对象封装,它将POJO与数据库表建⽴映射关系,是⼀个全⾃动的orm框架,hibernate可以⾃动⽣成SQL语句,⾃动执⾏,使得Java程序员可以使⽤⾯向对象的思维来操纵数据库。是⼀种JPA实现。
4. JPA(Java Persistence API)
Java对象持久化的 API。是SUN公司推出的⼀套基于ORM的规范,通过注解或者XML描述【对象-关系表】之间的映射关系,并将实体对象持久化到数据库中。JPA规范本质上就是⼀种ORM规范,注意不是ORM框架——因为JPA并未提供ORM实现,它只是制订了⼀些规范,提供了⼀些编程的API接⼝,但具体实现则由服务⼚商来提供实现。JPA是为了让⾯向对象设置的,为了不写sql语句⽽设置的。
优点:数据库移植快,⼀级⼆级缓存,查询,提⾼性能(ehcache框架实现缓存)
缺点:查询所有的时候,find性能⽆法控制,⽆法⼲预sql语句的⽣成,对sql语句要求⾼的话
5. 多个数据访问框架区别
Hibernate:是JPA的⼀种实现,是⼀个框架
Spring Data JPA:对JPA规范的再次抽象,底层使⽤Hibernate实现
Spring Data JDBC: jdbcTemplate模板数据库简化对数据库的操作,相⽐传统JDBC⽽⾔省去了,数据库驱动,连接等⽆关配置,只需要写sql,设置参数
Mybatis:是⼀个持久化框架,但不完全是⼀个orm框架,不是依照的jpa规范,她需要些sql语句,半ORM。
jpa mybatis下图说明上⾯介绍的名词之间相互关系
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论