当前位置: JAVA > 关于java数据库

关于java数据库

2020-06-09 分类:JAVA 作者:admin 阅读(19)

基础概念

dataSource

DataSource可以看作数据源,它封装了数据库参数,连接数据库,程序中操作DataSource对象即可对数据库进行增删改查操作。

MyBatis框架

MyBatis框架的DataSource类是:org.apache.ibatis.datasource.pooled.PooledDataSource

这是mybatis.jar包中的类。

Druid框架

Druid框架的DataSource类是:com.alibaba.druid.pool.DruidDataSource

这是druid.jar包中的类。

值得注意的是:

以上框架中的DataSource虽然类不同,但可以混合使用,即在MyBatis框架中可以使用DBCP中的DataSource类,也可以使用Druid框架中的DataSource类。
Druid并不是一个独立操作数据库的框架,它只提供了DataSource,必须与其他框架配合使用。
只所以这些DataSource对象可以通用,是因为他们都实现了同一个接口:javax.sql.DataSource。实现DataSource接口即必须重新getConnection方法,即可以获得Connection对象,有了Connection对象即可以对数据库操作。

原文链接:https://blog.csdn.net/fightingXia/java/article/details/82555999


jdbc(Java DataBase Connectivity)是java连接数据库操作的原生接口。JDBC对Java程序员而言是API,对实现与数据库连接的服务提供商而言是接口模型。作为API,JDBC为程序开发提供标准的接口,并为各个数据库厂商及第三方中间件厂商实现与数据库的连接提供了标准方法。一句话概括:jdbc是所有框架操作数据库的必须要用的,由数据库厂商提供,但是为了方便java程序员调用各个数据库,各个数据库厂商都要实现jdbc接口

jpa(Java Persistence API)是java持久化规范,是orm框架的标准,主流orm框架都实现了这个标准。Sun引入新的JPA ORM规范出于两个原因:其一,简化现有Java EE和Java SE应用开发工作;其二,Sun希望整合ORM技术,实现天下归一。ORM是一种思想,是插入在应用程序与JDBC API之间的一个中间层,JDBC并不能很好地支持面向对象的程序设计,ORM解决了这个问题,通过JDBC将字段高效的与对象进行映射。具体实现有hibernate、spring data jpa、open jpa。

spring data jpa是对jpa规范的再次抽象,底层还是用的实现jpa的hibernate技术。

hibernate是一个标准的orm框架,实现jpa接口。

mybatis也是一个持久化框架,但不完全是一个orm框架,不是依照的jpa规范

 

jdbc和jpa的区别

本质上,这两个东西不是一个层次的,jdbc是数据库的统一接口标准,jpa是orm框架的统一接口标准。用法有区别,jdbc更注重数据库,orm则更注重于java代码,但是实际上jpa实现的框架底层还是用jdbc去和数据库打交道。

 

JPA、Hibernate、Spring Data JPA的关系

上面这张关系图展示了这三者的关系。

  • JPA(Java Persistence API)是规范,它指明了持久化、读取和管理 Java 对象映射到数据库表时的规范。
  • Hibernate 则是一个 ORM 框架,它实现了 Java 对象到数据库表的映射。也就是说,Hibernate 提供了 JPA 的一种实现。
  • Spring Data JPA 是 Spring Framework 的一部分。它不是 JPA 的实现,而是在 JPA 之上提供更高层次的抽象,可以减少很多模板代码。而 Spring Data JAP 的默认实现是 Hibernate,当然也可以其他的 JPA Provider。

来源:http://lihuia.com/jdbc%E3%80%81jpa%E3%80%81spring-data-jpa%E3%80%81hibernate%E3%80%81mybatis%E4%B9%8B%E9%97%B4%E7%9A%84%E5%85%B3%E7%B3%BB/

「三年博客,如果觉得我的文章对您有用,请帮助本站成长」

赞(0) 打赏

支付宝
微信
0

支付宝
微信
标签:

上一篇:

下一篇:

你可能感兴趣

共有 0 - 关于java数据库

博客简介

精彩评论

  • admin(6年前 (2020-03-09))

    分别用不同厚度的筏板定义,画图后这设置筏板变截面处理。 http://f.fwxgx.co...

    评:新文章!
  • admin(6年前 (2020-03-09))

    分别用不同厚度的筏板定义,画图后这设置筏板变截面处理。 http://f.fwxgx.co...

    评:新文章!
  • admin(6年前 (2020-03-09))

    新增一个框架图! http://biji.jinli.vip/wp-content/upl...

    评:新文章!
  • 一位WordPress评论者(6年前 (2020-02-13))

    嗨,这是一条评论。 要开始审核、编辑及删除评论,请访问仪表盘的“评论”页面。 评论者头像来自...

    评:世界,您好!