Spring4--Spring对DAO的支持

背景

这一章主要介绍了Spring对持久化技术的支持,让我们更加专注于业务层的编码,避免繁琐的配置流程。

1.Spring的DAO理念

 在UserDao中定义访问User数据对象的接口方法,业务层通过UserDao操作数据,并使用具体的持久化技术

实现UserDao接口方法,这样业务层和具体的持久化技术就实现了解耦。

2.统一的异常体系

(1)Spring提供了一套和实现技术无关的、面向DAO层语义的异常体系,并通过转换器将不同持久化技术的异常转

换成Spring的异常。

Spring的异常体系建立在运行期异常的基础上,开发者可以根据需要捕捉感兴趣的异常。通过getCause()方法

获取原始的异常信息。

 (2)JDBC的异常转换器

在org.springframework.jdbc.support包中定义了SQLExceptionTranslator接口,该接口的两个实现类

SQLErrorCodeSQLExceptionTranslator和SQLStateSQLExceptionTranslator分别处理SQLException

中错误码和SQL状态码的翻译工作。

(3)其他持久化技术的异常转换器

3.统一数据访问模板

(1)固定的部分在模板类中已经准备好,而变化的部分通过回调接口开放出来,用于定义具体数据

访问和结果返回的操作。

 

(2)模板类:

在回调中编写具体的数据操作逻辑,使用模板执行数据操作,在Spring中,这是典型的数据操作模式。

(3)支持类: 不但包含数据访问模板,还包含数据源或会话等内容。通过扩展支持类定义自己的数据访问类

是最简单的数据访问方式。

 

 4.数据源

Spring在第三方依赖包中包含了两个数据源的实现类包,一个是Apache的DBCP,另一个是C3P0。

(1)DBCP:

提高性能的配置建议:将testOnBorrow设置为false,而将testWhileIdle设置为true,再设置timeBetweenEvictionRunsMillis值。

配置的效果是DBCP将通过一个后台线程定时地对空闲连接进行检测,当发现无用的空闲连接(那些被数据库关闭的连接)时,

就会将他们清除。

(2)使用属性文件:

将数据源的配置信息独立到一个属性文件中,通过<context:property-placeholder>引入属性文件,以${xxx}的方式引用属性。

(3)获取JNDI数据源:

如果应用配置在高性能的应用服务器上,则可能希望使用应用服务器本身提供的数据源。应用服务器的数据源使用JNDI开放

调用者使用,Spring为此专门提供了引用JNDI数据源的JndiObjectFactoryBean类。

 通过jndiName指定引用的JNDI数据源名称。也可以通过jee命名空间,简化javaee资源的引用。

(4)Spring的数据源实现类:

DriverManagerDataSource,位于org.springframework.jdbc.datasource包中。它没有提供池化连接机制,每次调用

getConnection()方法获取新连接时,只是简单地创建一个新的连接。比较适合在单元测试或独立应用中使用。

 总结

Spring为了使不同的持久化技术能以统一的方式去使用,定义了Spring异常体系,模板类和回调接口,数据源。

 

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值