原创 | 使用JPA全面实现DDD持久化【关于本书】

对于任何规模的企业应用来说,数据持久化都是其中必不可少的一个关键组成部分。因为持久化是如此重要,而关系数据库是事实上的数据存储标准,所以Java的所有者Sun Microsystems早早就为数据库访问制订了规范,这就是JDBC(Java Database Connectivity)。

JDBC的本意是为不同种类的关系数据库制定统一的API,这样一来,Java开发者就不再需要针对不同类型的关系数据库分别编写一套不同的访问代码。但是在JDBC的使用上,还是存在下面的严重问题无法解决:

  • 使用JDBC规范编写的数据访问代码非常冗长,每个连接、语句、结果集都要记得手工关闭,而连接、语句、结果集的创建、操作和关闭都会抛出受检的(checked)异常,稍不小心就会导致内存泄露或者连接耗尽。据统计,绝大部分的开发者都不能编写正确的、完善的JDBC数据库访问代码,包括很多大牛都会犯错误。你能想象语句的关闭也会抛出异常,需要再次捕获并且在finally语句里面处理吗?
  • JDBC虽然在API层面作出了统一,但是在SQL语句的层面上却不能统一。针对Oracle编写的JDBC访问代码不能直接移植到MySQL上,因为它们各自支持不同的方言。因此,JDBC不能保证数据库可移植性。
  • Java是一种面向对象的编程语言。在企业应用中,需要持久化到数据库的是领域层的领域对象(实体和值对象)。领域对象之间有四种关系:关联、泛化(继承)、聚合和组合。而数据库核心对象是二维数据表,表与表之间只有一种关联关系。在对象模型和关系模型之间存在阻抗失配。要将实体对象持久化到关系数据库中,需要编写大量的转换代码。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值