镜子的Spring之旅之攻略数据库

Part 1 零散的概念

DAO: 数据访问对象(data access object),提供数据访问和写入到数据库的一种方式,并通过接口发布功能,应用程序的其他部分就可以通过接口访问了。Spring提供DAO支持类,而将业务自己的DAO类作为它的子类。编写应用程序自己的DAO实现时,可继承DAO支持类,调用模板获取方法直接访问底层数据模板,也支持访问其与数据库通信的类

Spring提供很多数据访问异常(完善了JDBC简单的SQLException异常体制),且都继承自DataAccessException,非检查性异常,没有必要捕获。

数据访问模板化:Spring将数据访问过程中固定的和不可变的部分明确划分为两个不同的类,模板(template)和回调(callback)。针对不同的持久化平台,提供了多个模板。

Part2 配置数据源

使用JNDI数据源

<jee:jndi-lookup id = ”datasource”
jndi-name = ”/../..”
resource-name = ”true” />

jndi-name 指定JNDI中资源的名称, resourse-name应用程序应用在JAVA应用程序数据库中,值需为true,这样给定的jndi-name前会自动添加java:comp/env/前缀。

数据库连接池

Spring并没有提供其实现,可使用Jakarta Commons Database Connection Pooling(DBCP),最常用BasicDataSource,类似于Spring自带的DriverManagerDataScource:

<bean id = ”dataSource” class = ”org.apache.commons.dbcp.BasicDataSource”>
  <property name = ”driverClassName” value = ”org.jsqldb.jdbcDriver”>
  <property name = ”url” value = ”jdbc:hsqldb:hsql://localhost/../..”>
  <property name = ”username” value = ””>
  <property name = ”password” value = ””>
  ..
</bean> 

基于JDBC驱动的数据源 Spring中的最简单配置方式,两种,DriverManagerDataSource(每个连接请求都返回新建连接) 和 SingleConnectionDataSource(每个连接请求都返回同一个连接),没有可配置的池相关属性。 均位于org.springframework.jdbc.datasource包中。

<bean id = ”dataSource” 
class = ” org.springframework.jdbc.datasource.DriverManagerDataSource”>
  <property name = ”driverClassName” value = ”org.jsqldb.jdbcDriver”>
  <property name = ”url” value = ”jdbc:hsqldb:hsql://localhost/../..”>
  <property name = ”username” value = ””>
  <property name = ”password” value = ””>
</bean>

Part3 在Spring中使用JDBC

使用JDBC模板 Spring提供的3个模板JdbcTemplate,NamedParameterJdbcTemplate(已被合并到后者),SimpleJdbcTemplate。 配置SimpleJdbcTemplate:

<bean id = ”jdbcTemplate” 
  class =”org.springframework.jdbc.core.simple. SimpleJdbcTemplate”>
  <constructor-arg ref = ”datasource”>
</bean>

装配Dao

<bean id = “xDao” class = “…”>
 <property name = ”jdbcTemplate” ref = “jdbcTemplate”
</bean>

使用命名参数

使用JDBC DAO支持类

集成Hibernate或JPA

转载于:https://my.oschina.net/jingzigege/blog/729664

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值