Spring 支持三种数据访问技术
JDBC操作 -------- JdbcTemplate 
Hibernate框架操作 -------- HibernateTemplate 
IBatis 框架操作 -------- SqlMapClientTemplate 
JdbcTemplate 使用和 Apache DBUtils 非常类似 
导入jar包 : 6个Spring最基本jar包 、spring-jdbc 、spring-tx 、数据库驱动 
1、 手动JdbcTemplate 编程 
DriverManagerDataSource driverManagerDataSource = new DriverManagerDataSource(); // 连接池
		// 设置四个基本连接参数
		driverManagerDataSource.setDriverClassName("com.mysql.jdbc.Driver");
		driverManagerDataSource.setUrl("jdbc:mysql:///spring3day2");
		driverManagerDataSource.setUsername("root");
		driverManagerDataSource.setPassword("abc");2、使用配置文件 开发JdbcTemplate (将连接池配置到文件中 )配置DBCP 导入 
com.springsource.org.apache.commons.dbcp-1.2.2.osgi.jar com.springsource.org.apache.commons.pool-1.5.3.jar配置c3p0 导入
com.springsource.com.mchange.v2.c3p0-0.9.1.2.jar3、 使用applicationContext.xml 配置数据库连接基本参数,XML格式文件维护起来不是很方便
在applicationContext.xml <context:property-placeholder> 引入一个外部properties 文件
<!-- 引入一个外部 properties文件 -->
	<context:property-placeholder location="classpath:jdbc.properties"/>
	<!-- 第三种 c3p0数据源  -->
	<bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource">
		<property name="driverClass" value="${jdbc.driverClass}"></property>
		<property name="jdbcUrl" value="${jdbc.url}"></property>
		<property name="user" value="${jdbc.user}"></property>
		<property name="password" value="${jdbc.password}"></property>
	</bean>	<T> T query(String sql, ResultSetExtractor<T> rse, Object... args)  查询  ----------------- 完整封装过程 
		List<User> users = jdbcTemplate.query("select * from user", new ResultSetExtractor<List<User>>(){
			@Override
			public List<User> extractData(ResultSet rs) throws SQLException,
					DataAccessException {
				List<User> users = new ArrayList<User>();
				while(rs.next()){
					User user = new User();
					user.setId(rs.getInt("id"));
					user.setName(rs.getString("name"));
					users.add(user);
				}
				return users;
			}
		});
<T> List<T>  query(String sql, RowMapper<T> rowMapper, Object... args)   查询 ------------ 只负责对象本身封装过程 
		List<User> users = jdbcTemplate.query("select * from user", new RowMapper<User>(){
			@Override
			public User mapRow(ResultSet rs, int rowNum) throws SQLException {
				User user = new User();
				user.setId(rs.getInt("id"));
				user.setName(rs.getString("name"));
				return user;
			}
		});class UserDAO extends JdbcDaoSupport { 
}<!-- Spring核心监听器 --> <listener> <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class> </listener> <!-- Spring 配置文件位置 --> <context-param> <param-name>contextConfigLocation</param-name> <param-value>classpath:applicationContext.xml</param-value> </context-param>
原文地址:http://blog.csdn.net/u012815721/article/details/40143309