Spring是如何征服数据库的?---《Spring实战》系列 10

谈起征服,不禁让人想起那英那首《征服》。但此时此刻,应该是数据库大声对Spring唱起的“就这样被你征服,喝下你藏好的毒,我的剧情已落幕,我的爱恨已入土”。Hold on, Hold on, Spring到底对数据库做了点什么?今天让我们一起来看看。

关于Spring征服数据库,有三大秘诀,当Spring使出这三个绝招之后,数据库立刻乖乖的投入Spring的怀抱,从此百依百顺,两人过上了如胶似漆的甜蜜生活。

那这三个绝招到底是什么呢?

绝招一:“针对接口编程”。

一般情况下,一个应用程序想要访问数据库,最好的方法是有一个数据访问对象(data access object,DAO)。同时为了避免应用与特定的数据访问策略耦合在一起,编写良好的Repository应该以接口的方式暴露功能。也就是这样一种模式:服务对象----->Repository接口<------------Repository实现.

接口就是实现松耦合代码的关键,Spring正式采用了这种方式。为了将数据访问层与应用程序的其它部分隔离开,Spring采用的方式之一就是提供统一的异常体系。这个异常体系厉害在哪里呢?我们和原生态的JDBC对比一下就知道了,正所谓没有对比就没有伤害,大家可以认真观察下面的图片:

在这里插入图片描述

丰富的异常体系好处是不言而喻的,出了问题可以准确的定位,而且尽管Spring的异常体系非常丰富,但是它并没有与特定的持久化方式相关联。当然,如果想要使用Spring的数据访问异常,就必须使用Spring所支持的数据访问模板。在这里有出现了一个设计模式:模板方法模式。简言之,就是将过程中与特定实现相关的部分委托给接口,而这个接口的不同实现定义了过程中的具体行为。Spring在数据访问中正是使用了这种模式:
在这里插入图片描述

绝招二:配置数据源

无论选取哪种数据访问方式,都需要配置一个数据源的引用。而Spring提供了多种在Spring上下文中配置数据源bean的方式,包括:

通过JDBC驱动程序定义的数据源
通过JNDI查找的数据源
连接池的数据源
使用Profile选择数据源

在这里详细介绍一下使用数据源连接池的方法。虽然Spring并没有提供数据源连接池的实现,但是却有很多可选的方案,比如说DBCP, C3P0,BoneCP等等。配置方式同样有两种,可以选择XML配置,也可以选择Java配置,其实都是可以的。请看下图:

在这里插入图片描述

绝招三:使用JDBC模板

写过原生态JDBC访问数据库代码的朋友都知道,实在是太麻烦了,步骤繁琐,且容易出错,先获取连接,再创建语句,然后执行语句,最后清理资源等等。其实关键的就是其中的一行代码而已。而Spring将数据访问的样板代码抽象到模板类之中,从而让我们只需编写从数据库读写数据的必须代码即可。

一共有三种模板可以使用,而最常用的就是JdbcTemplate模板。

使用JdbcTemplate模板之前,只需要为其设置Datasource的信息就可以了。然后在Jdbc模板中进行对数据库的读写操作就可以了,在Java中,JDBC是与关系型数据库交互的最基本方式,但原生态的JDBC太笨重了,Spring的模板化可以消除样板式代码,大大地提高了开发效率。

这就是Spring征服数据库的三大绝招,然而精彩的故事还没结束,我们会在后面继续学习Spring是如何通过和持久化框架合作实现数据访问和持久化的。好戏还在后面~

下期再会。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值