持久化

▼魔方 西西 提交于 2019-12-05 17:19:30
  • 持久化
    • 为了避免重启后用户数据丢失,所以要把数据放到硬盘上,但是因为硬盘很慢,所以不能替代内存将对象直接放在硬盘上
    • 可以使用序列化、数据库等手段
  • 序列化
    • 将内存中的重要数据适时序列化到硬盘上,然后下次上电后反序列化回内存中
    • 效率低
  • 关系型数据库
    • 强大的理论基础 - 关系代数、关系演算
    • 支持大规模的数据存储和查询
    • 支持事务操作
    • 高度抽象的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
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!