Spring数据源的灵活配置巧应用
来源: 框架 Spring | 作者: 熔岩 | 发布: 2008-5-08 00:00
环境:
Java SE 1.5
Spring-2.5.1
mysql-connector-java-5.1.5.zip
Mysql 5.x
为了从数据库中取得数据,我们首先需要获取一个数据库连接。 Spring通过DataSource对象来完成这个工作。 DataSource是JDBC规范的一部分, 它被视为一个通用的数据库连接工厂。通过使用DataSource, Container或Framework可以将连接池以及事务管理的细节从应用代码中分离出来。 作为一个开发人员,在开发和测试产品的过程中,你可能需要知道连接数据库的细节。 但在产品实施时,你不需要知道这些细节。通常数据库管理员会帮你设置好数据源。
在使用Spring JDBC时,你既可以通过JNDI获得数据源,也可以自行配置数据源( 使用Spring提供的DataSource实现类)。使用后者可以更方便的脱离Web容器来进行单元测试。 这里我们将使用DriverManagerDataSource,不过DataSource有多种实现, 后面我们会讲到。使用DriverManagerDataSource和你以前获取一个JDBC连接 的做法没什么两样。你首先必须指定JDBC驱动程序的全限定名,这样DriverManager 才能加载JDBC驱动类,接着你必须提供一个url(因JDBC驱动而异,为了保证设置正确请参考相关JDBC驱动的文档), 最后你必须提供一个用户连接数据库的用户名和密码。
以上两段文字摘自Spring开发文档原文,下面我写的一个小的应用,用来测试Srping JDBC支持的效果。
下面这个测试要实现一个目标:通过获取Spring的数据源来查询MySQL数据库testdb的一个表t_user数据。
一、创建项目,加载程序用到的工具包和驱动。并在源代码目录中添加Spring的配置文件ApplicationContext.xml,配置内容如下:
二、然后创建数据库环境:
create database if not exists testdb;
DROP TABLE IF EXISTS t_user;
CREATE TABLE t_user (
id int(11) NOT NULL auto_increment,
firstname varchar(50) default NULL,
lastname varchar(50) default NULL,
zipcode varchar(10) default NULL,
tel varchar(20) default NULL,
address varchar(200) default NULL,
PRIMARY KEY (id)
) ENGINE=InnoDB DEFAULT CHARSET=gbk;
insert into t_user(id,firstname,lastname,zipcode,tel,address) values
(1,'haha','hehe','234444','13577788999','阿斯地方'),
(2,'lei','aaa','450000','13939012107','郑州市经三路');
三、Spring Bean容器环境获取工具类
package com.lavasoft.dbtest;
import org.springframework.context.support.ClassPathXmlApplicationContext;
/**
* Created by IntelliJ IDEA.
* File: ContextHelper.java
* User: leizhimin
* Date: 2008-2-21 14:20:46
* Spring Bean容器环境获取工具类
*/
public final class ContextHelper {
private static ClassPathXmlApplicationContext _ctx;
static {
_ctx = new ClassPathXmlApplicationContext("ApplicationContext.xml");
}
private ContextHelper() {
}
public static ClassPathXmlApplicationContext getContext() {
return _ctx;
}
}
