JDBC
JDBC :Java DataBase Connectivity。是java连接数据库操作的原生接口。
作用:
1.JDBC为程序开发提供标准的接口。为数据库厂商及第三方中间件厂商实现与数据库的连接提供了标准的方法。
2.jdbc是所有框架操作数据库必须要用的,由数据库厂商提供。但是为了方便java程序员调用各个数据库,各个数据库厂商都要实现jdbc接口。
ORM
ORM:Object Relational Mapping。对象关系映射。是一个实现使用对象操作数据库
的设计思想
。
作用:
在操作数据库
之前,把实体类
与数据库中的表
关联起来。通过对实体类进行增删改查
,操作数据库中的表
。
JDBC并不能很好地支持面向对象的程序设计
,ORM
解决了这个问题,通过JDBC将字段高效的与对象进行映射。具体实现有hibernate、spring data jpa、open jpa。
JPA
JPA:Java Persistence API。是一组**Java持久层API
**的规范。它是Java官方定制的ORM方案
,是规范,是标准。
它只是一套实现ORM理论
的接口,没有实现的代码。
作用:
1.通过对象操作数据库的。
2.不用编写sql语句。
3.不需要编写SQL语句,就屏蔽各种数据库SQL的差异
。编写的代码就可以一套代码兼容多种数据库。
问题:
通过对象操作数据库表,不编写sql,那操作数据库表的sql怎么产生?
通过JPA
的实现框架。
常用注解介绍:
@Entity:声明该实体类是一个JPA标准的实体类。
@Table:指定实体类关联的表,注意如果不写表名,默认使用类名对应表名。
@Column:指定实体类属性对应的表字段,如果属性和字段一致,可以不写
@Id:声明属性是一个OID,对应的一定是数据库的主键字段
@GenerateValue:声明属性(Object ID)的主键生成策略
@SequenceGenerate:使用SEQUENCE策略时,用于设置策略的参数
@TableGenerate:使用TABLE主键策略时,用于设置策略的参数
@JoinTable:关联查询时,表与表是多对多的关系时,指定多对多关联表中间表的参数。
@JoinColumn:关联查询时,表与表是一对一、一对多、多对一以及多对多的关系时,声明表关联的外键字段作为连接表的条件。必须配合关联表的注解一起使用
@OneToMany:关联表注解,表示对应的实体和本类是一对多的关系
@ManyToOne:关联表注解,表示对应的实体和本类是多对一的关系
@ManyToMany:关联表注解,表示对应的实体和本类是多对多的关系
@OneToOne:关联表注解,表示对应的实体和本类是一对一的关系
Spring Data JPA
Spring Data JPA:是Spring基于ORM框架
,JPA规范
上封装的一套JPA应用框架
。简化了对数据库的访问和操作。它提供了包括增删改查等在内的基本功能,更容易进行扩展。
整体流程:
java代码调用springDataJpa封装的API
(Spring Data JPA封装了JPA规范)。内部还是调用JPA的实现框架(例如:hibernate),进行数据库的操作。