- 持久化
- 为了避免重启后用户数据丢失,所以要把数据放到硬盘上,但是因为硬盘很慢,所以不能替代内存将对象直接放在硬盘上
- 可以使用序列化、数据库等手段
- 序列化
- 将内存中的重要数据适时序列化到硬盘上,然后下次上电后反序列化回内存中
- 效率低
- 关系型数据库
- 强大的理论基础 - 关系代数、关系演算
- 支持大规模的数据存储和查询
- 支持事务操作
- 高度抽象的SQL,屏蔽了数据库的不同和实现细节
- O/R Mapping
- 为了将Java对象和关系型数据库对应起来
- JDBC(Java Database Connectivity)
- Java定义接口,各个数据库去实现
- 是非常“低级”的接口,使用复杂,细节太多,比如要打开Connection,创建Statement,执行SQL,遍历ResultSet,关闭Connection避免资源泄露。
- 中间件(Middleware)
- 把通用的、复杂的服务交给中间件提供商去搞定,开发人员只关注于业务逻辑的开发
- EJB标准
- 最早出现,但还是有点复杂,而且要和企业级应用服务器等一起卖,贵。
- EJB 3.0
- Hibernate的创始人加入后推出,参考Hibernate也使用了注解的方式,极大的简化了开发,但开发人员已经爱上了轻量级开发,仍没有成功。
- 不过遗留下一个副产品 - JPA(Java Persistence API),成为了一个标准。
- 轻量级框架
- Hibernate
- 把Java属性用声明的方式映射到数据库表中,完全不用关系Connection、SQL这些细节。
- iBatis
- MyBatis
- Hibernate
来源:https://www.cnblogs.com/wyp1988/p/11936315.html