Spring源码学习笔记---数据访问(一)

以统一的数据访问异常层次体系为核心,以JDBC API的最佳实践和统一集成各种ORM方案为两翼,为java平台提供完美的数据访问。

异常层次体系:
DataAccessException抽象类系列:
CleanupFailureDataAccessException
InvalidDataAccessResourceUsageException
DataIntegrityViolationException
ConcurrencyFailureException等

JDBC API最佳实践:
1.基于template的JDBC使用方式(以JdbcTemplate为核心,采用模板方法模式)
2.基于操作对象的JDBC使用方式(以RdbmsOperation抽象类为基础)

模板方法模式:用于对算法或者行为逻辑进行封装,即如果多个类中存在某些相似的算法逻辑或者行为逻辑,可以将这些相似的逻辑提取到模板方法类中实现,然后子类根据需要实现某些自定义的逻辑。




----------JdbcTemplate类------------
模板方法类想到callback接口做事,就要提供相应的资源,callback使用提供的资源做事。完事之后,模板方法类来处理公开的资源,callback则不需要关心这些。

默认情况下,JdbcTemplate采用SQLErrorCodeSQLExceptionTranslator进行SqlException的转译工作。
否则使用SQLStateSQLExceptionTranslator转译

自定义异常转译简单配置:使用classpath根路径下的sql-error-codes.xml(原文件存在于jdbc的support包中)。

JdbcTemplate的初始化:
<bean name="dataSource" class="com.alibaba.druid.pool.DruidDataSource"
        init-method="init" destroy-method="close">
//destroy-method="close":确保应用退出后,数据库连接可以关闭
<bean id="namedParameterJdbcTemplate"
        class="org.springframework.jdbc.core.namedparam.NamedParameterJdbcTemplate">
        <constructor-arg ref="dataSource" />
/bean>



Spring中的LOB类型处理
BLOB:主要用于存放数据量比较大二进制类型数据,如比较大图像,word文档之类
CLOB:存放文本类型数据

LOB数据处理类:LobHandler接口
LobHandler作用:
1.LOB数据的访问接口
2.LobCreator的生产工厂



NamedParameterJdbcTemplate类
和SimpleJdbcTemplate类(在JdbcTemplate类和NamedParameterJdbcTemplate类基础上加上了JAVA 5一些功能修饰)

DataSource接口系列:数据库连接
自定义datasource,扩展自AbstractDataSource

JdbcDaoSupport:所有基于JDBC进行数据访问的DAO实现类的超类

------------基于操作对象访问-----------------
RdbmsOperation主要分为三个分支:
1.查询操作对象分支(以SqlQuery为基础)
2.更新操作对象分支(以SqlUpdate为基础)
3.存储过程对象分支(以StoredProceture为基础)

1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看REAdMe.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。 1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看REAdMe.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。 1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看READme.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值