JDBC -> java data base connection,只是提供接口,由数据库厂商实现。
JDBCTemplate -> 内嵌于Spring框架,对JDBC的封装,缺点:没有缓存
Mybatis -> 注解+xml+Java放射技术
Hibernate -> 不用编写sql+分布式事务
使用 JDBC 的好处:
jdbc的缺点:
一:工作量比较大,编程复杂;需要连接,然后处理jdbc底层事务,处理数据类型,还需要操作Connection,Statement对象和ResultSet对象去拿数据并关闭他们。
JDBC已经能够满足大部分用户最基本的需求,
但是在使用JDBC时,必须自己来管理数据库资源如:获取
PreparedStatement,设置SQL语句参数,关闭连接等步骤。
JDBCTemplate就是Spring对JDBC的封装,目的是使JDBC更加易于使用。
JDBCTemplate是Spring的一部分。
JDBCTemplate处理了资源的建立和释放。
他帮助我们避免一些常见的错误,比如忘了总要关闭连接。
他运行核心的JDBC工作流,如Statement的建立和执行,而我们只需要提供SQL语句和提取结果。
使用JdbcTemplate编程我们只需要做以下步骤:
1)提供SQL语句和占位符的值
2)得到封装好的查询结果集
使用步骤
1) 导入依赖的jar包(c3p0连接池、mysql驱动、spring相关)
2) 准备连接池
3) 创建 JdbcTemplate 对象,传入连接池对象
4) 编写SQL语句
5) 调用 execute()执行 DDL、update()执行 DML、queryXxx()执行 DQL 等方法
jdbcTemplate.queryForObject("select * from user where name=? and password=?",
new BeanPropertyRowMapper<>(User.class), name, password);
ORM取代了JDBC,所有的ORM模型都是基于JDBC进行封装的,不同ORM模型对JDBC封装的强度是不一样的
ORM
Hibername一问世就成为了Java世界首选的ORM框架,它是建立在POJO和数据库表模型的直接映射关系上的
Hibernate 是一个开放源代码的对象关系映射框架,它对 JDBC 进行了非常轻量级的对象封装,它将 POJO 与数据库表建立映射关系,是一个全自动的 orm 框架,hibernate 可以自动生成 SQL 语句,自动执行,使得 Java 程序员可以随心所欲的使用对象编程思维来操纵数据库。
执行过程
1、读取配置文件完成ORM的映射关系
2、获取session进行增删改查的操作
hibernate工作原理:
1、通过Configuration().configure();读取并解析hibernate.cfg.xml配置文件。
2、由hibernate.cfg.xml中的 读取解析映射信息。
3、通过config.buildSessionFactory();//得到sessionFactory。
4、sessionFactory.openSession();//得到session。
5、session.beginTransaction();//开启事务。
6、persistent operate;
7、session.getTransaction().commit();//提交事务
8、关闭session;
9、关闭sessionFactory;
这就是Hibernate的优势,在配置了映射文件和数据库连接文件后,Hibernate就可以通过Session操作,非常容易,消除了jdbc带来的大量代码,大大提高了编程的简易性和可读性。Hibernate还提供了级联,缓存,映射,一对多等功能。Hibernate是全表映射,通过HQL去操作pojo进而操作数据库的数据。
Hibernate框架基础——Hibernate入门 https://blog.csdn.net/yerenyuan_pku/article/details/52733275
为了解决Hibernate的不足,一个半自动映射的框架MyBatis应运而生
mybatis是一个java持久层框架,它封装少、高性能·可优化、维护简单等优点成为了目前java移动互联网网站服务的首选持久层框架,它特别适合分布式和大数据网络数据库编程
之所以称它为半自动,是因为它需要手工匹配提供POJO、SQL和映射关系,而全表映射的Hibernate只需要提供POJO和映射关系便可
Mybaits的前身是Apache的一个开源项目iBatis,2010年这个项目由apache software foundation 迁移到了 google code 并且改名为Mybatis,2013年11月迁移到Github,目前mybaits是由Github维护的
iBatis一词来源于“internet”和“abatis”的组合
mybaits所需要提供的映射文件包含以下三个部分
Spring Data JPA 是 Spring 基于 ORM 框架、JPA 规范的基础上封装的一套JPA应用框架,可使开发者用极简的代码即可实现对数据库的访问和操作。它提供了包括增删改查等在内的常用功能,且易于扩展!学习并使用 Spring Data JPA 可以极大提高开发效率!
Spring Data JPA 让我们解脱了DAO层的操作,基本上所有CRUD都可以依赖于它来实现,在实际的工作工程中,推荐使用Spring Data JPA + ORM(如:hibernate)完成操作,这样在切换不同的ORM框架时提供了极大的方便,同时也使数据库层操作更加简单,方便解耦
SpringData Jpa 极大简化了数据库访问层代码。 如何简化的呢? 使用了SpringDataJpa,我们的dao层中只需要写接口,就自动具有了增删改查、分页查询等方法。
JPA是一套规范,内部是有接口和抽象类组成的。hibernate是一套成熟的ORM框架,而且Hibernate实现了JPA规范,所以也可以称hibernate为JPA的一种实现方式,我们使用JPA的API编程,意味着站在更高的角度上看待问题(面向接口编程)
Spring Data JPA是Spring提供的一套对JPA操作更加高级的封装,是在JPA规范下的专门用来进行数据持久化的解决方案。
https://blog.csdn.net/qq_42806915/article/details/82707783
https://www.cnblogs.com/inspurhaitian/p/4647485.html