xlecho编辑整理,欢迎转载,转载请声明文章来源。欢迎添加echo微信(微信号:t2421499075)交流学习。 百战不败,依不自称常胜,百败不颓,依能奋力前行。——这才是真正的堪称强大!!java
参考文章列表:程序员
数据层框架的发展史
JDBC编码的几大问题和MyBatis等框架的发展支持缘由?
在最初编写JDBC链接数据库的时候,各类代码操做较为复杂,并且有不少缺陷。缺陷总结以下:
- 方法的封装问题
- 数据源的支持
- 映射结果集的接收和处理
- SQL语句硬编码
- 程序参数只能按照顺序传入(占位符)
- 没有实现实体类到数据库记录的映射
- 没有提供缓存等功能
工具类封装的出现解决了一部分问题
相应的工具类如:springjdbc、jdbcutils、Apache DbUtils等。这样的工具类主要解决了一下几个问题:spring
工具类的响应实现解决了部分JDBC的缺陷,可是并不完美。每一次的改进和工具类的出现的就是咱们框架的前身出现,框架也是工具。在愈来愈完善的解决方案的出现以后,ORM框架基本就成型了。同时解决了以上JDBC列出来的各类问题。
ORM框架,全称Object Relational Mapping,对象关系的映
面向对象的开发方法是当今企业级应用开发环境中的主流开发方法,关系数据库是企业级应用环境中永久存放数据的主流数据存储系统。对象和关系数据是业务实体的两种表现形式,业务实体在内存中表现为对象,在数据库中表现为关系数据。内存中的对象之间存在关联和继承关系,而在数据库中,关系数据没法直接表达多对多关联和继承关系。所以,对象-关系映射(ORM)系统通常以中间件的形式存在,主要实现程序对象到关系数据库数据的映射。sql
ORM框架的基本准则
- A. 简单:ORM以最基本的形式建模数据。好比ORM会将MySQL的一张表映射成一个Java类(模型),表的字段就是这个类的成员变量
- B. 精确:ORM使全部的MySQL数据表都按照统一的标准精确地映射成java类,使系统在代码层面保持准确统一
- C.易懂:ORM使数据库结构文档化。好比MySQL数据库就被ORM转换为了java程序员能够读懂的java类,java程序员能够只把注意力放在他擅长的java层面(固然可以熟练掌握MySQL更好)
- D.易用:ORM包含对持久类对象进行CRUD操做的API,例如create(), update(), save(), load(), find(), find_all(), where()等,也就是讲sql查询所有封装成了编程语言中的函数,经过函数的链式组合生成最终的SQL语句。经过这种封装避免了不规范、冗余、风格不统一的SQL语句,能够避免不少人为Bug,方便编码风格的统一和后期维护。
最先的ORM框架hibernate
Hibernate是一种ORM框架,全称为 Object_Relative DateBase-Mapping,在Java对象与关系数据库之间创建某种映射,以实现直接存取Java对象!数据库
- Hibernate 优点
-
-
- 为在数据库中直接储存和检索 Java 对象提供简单的 APIs。
-
- 若是在数据库中或任何其它表格中出现变化,那么仅须要改变 XML 文件属性。
-
- 抽象不熟悉的 SQL 类型,并为咱们提供工做中所熟悉的 Java 对象。
-
-
-
-
- Hibernate 响应的一些问题
-
-
-
-
什么是 MyBatis?
是一款面向对象和返回集关系的数据层封装,有效的减小jdbc的代码。编程
- 缺点:
-
- 不方便移植,数据库更换须要字段比较麻烦,须要改写sql
-
- 优势:
-
-
-
-
-
-
-
-
- 手写sql,可以有效的精准把控查询的速度,便于优化查询速度
-
- mybatis不会对应用程序或者数据库的现有设计强加任何影响
-
- 经过提供DAO层,将业务逻辑和数据访问逻辑分离,使系统的设计更清晰,更易维护,更易单元测试。
-
- 保证名称相同,配置好映射关系便可自动映射或者,不配置映射关系,经过配置列名=字段名也可完成自动映射。
什么是 Spring Data JPA(本文JPA只写Spring Data JPA)
Spring Data JPA是更大的Spring Data系列的一部分,能够轻松实现基于JPA的存储库。此模块处理对基于JPA的数据访问层的加强支持。它使构建使用数据访问技术的Spring驱动应用程序变得更加容易。缓存
选择什么样的ORM框架参考:
- 业务相对简单项目可使用Hibernate
- 须要灵活SQL的选择可使用MyBatis(SQL过长和SQL很复杂的状况)
- 对性能要求比较高可使用JDBC(如:咱们写的项目很小,或者说就是须要几个接口,这个时候咱们选择框架就会过于臃肿和复杂)
- Sping JDBC能够和 ORM框架混合使用(这种状况不多,可是若是某些业务可能单独须要数据源对接某一个接口,这个时候可能要适配器兼容JDBC接入)
作一个有底线的博客主服务器