传统JDBC的弊端
jdbc(java data base connectivity)是SUN公司(Oracle公司)提出的一系列规范,用于java程序连接数据库,定义了接口规范,具体实现由各家数据库厂商去实现。
jdbc连接数据库的步骤大致为:注册驱动,创建连接创建Connection,操作Connection对象建立statement对象,利用statement对象执行sql语句,获取返回值ResultSet对象,转换成POJO类,关闭数据库相关资源。
缺点: 工作量巨大,我们要创建连接,处理jdbc底层事务,处理数据类型,操作Connection、Statement和ResultSet对象去获取数据,并准确的关闭他们。对jdbc的异常进行捕获并关闭对应的资源,简单的sql已经如此复杂,更何况复杂的sql。ORM模型的产生
由于jdbc存在的缺点,因此ORM(Object relational mapping)对象关系型映射应运而生。
ORM将数据库表和java对象POJO(plain ordinary java object)映射,我们可以把数据库表映射成pojo,通过操作pojo来操作数据库表。
有了ORM,程序员只需了解java应用,无需对数据库相关知识深入了解,便能写出通俗易懂的程序Hibernate框架
在配置映射文件和数据库连接文件后,hibernate可以通过session接口操作数据库表的增删改查,消除了jdbc的大量代码,提高编程的简易性和可读性。还提供了,级联、缓存、映射、一对多等功能。hibernate是全表映射可以通过HQL操作POJO而操作数据库。
缺点:无法适应存储过程,由于hibernate屏蔽了sql,我们对于很复杂的多表关联很难适应。如果我们需要优化sql,hibernate无法做到。全表映射带来的不便。MyBatis框架
半自动映射。MyBatis包含:SQL,映射规则,POJO。提供了简易的缓存,级联,日志。
缺点:开发量比hibernate高,需要提供映射规则和sql。
相关文章
- 【深入浅出Seata原理及实战】「入门基础专题」带你透析认识Seata分布式事务服务的原理和流程(1)
- 【深入浅出Seata原理及实战】「入门基础专题」带你透析认识Seata分布式事务服务的原理和流程(1)
- 【Mybatis技术专题】MybatisPlus自带强大功能之多租户插件实现原理和实战分析(3)
- 大数据下一代变革之必研究数据湖技术Hudi原理实战双管齐下-后续
- 深入浅出学习透析 Nginx 服务器的基本原理和配置指南「运维操作实战篇」
- 大数据下一代变革之必研究数据湖技术Hudi原理实战双管齐下-下
- 深入浅出学习透析Nginx服务器的基本原理和配置指南「Keepalive性能分析实战篇」
- 精华推荐 | 【深入浅出RocketMQ原理及实战】「底层原理挖掘系列」透彻剖析贯穿RocketMQ的Broker服务端自动创建topic的原理分析和问题要点指南
- 大数据下一代变革之必研究数据湖技术Hudi原理实战双管齐下-中
- 精华推荐 | 【深入浅出RocketMQ原理及实战】「底层原理挖掘系列」透彻剖析贯穿RocketMQ的存储系统的实现原理和持久化机制