Spring学习笔记1——Spring JDBC


在Spring中使用JDBC大致可以分为如下几个步骤:

一、配置数据源:

1、使用JNDI数据源

2、使用数据源连接池(Apache Commons DBCP)

3、基于JDBC驱动的数据源(Spring框架提供的数据源对象DriverManagerDataSource和SingleConnectionDataSource)

本次我是使用的DriverManagerDataSource数据源对象,它与DBCP提供的BasicDataSource配置基本相同,唯一的不同是后者提供了线程池的功能。

DriverManagerDataSource虽然具有多线程,然而每一次请求连接的时候都会创建一个新的连接,与支持线程池的BasicDataSource相比还是有许多不足,使用时慎重考虑。

数据源配置的xml如下:

   <bean id="dataSource"
          class="org.springframework.jdbc.datasource.DriverManagerDataSource">
      <property name="driverClassName" value="com.mysql.jdbc.Driver"  />
      <property name="url" value="jdbc:mysql://localhost:3306/syh"  />
      <property name="username" value="root"  />
      <property name="password" value="password"  />
    </bean>

二、根据数据库存储的数据创建相应的bean(实现setter和getter)

三、实现DAO(Data Access Object,数据访问对象)

1、数据访问对象中必须包含一个JdbcTemplate(此外还有具有更多功能的NamedParameterJdbcTemplate)对象,该对象支持数据源的访问功能和简单的索引参数查询,NamedParameterJdbcTemplate还支持将查询值以命名参数的形式绑定到SQL中。注:DAO类需要实现JdbcTemplate的setter方法用以注入。

JdbcTemplate配置的xml如下:

<bean id="jdbcTemplate" class="org.springframework.jdbc.core.JdbcTemplate">
      <constructor-arg ref="dataSource"  />
    </bean>
2、将JdbcTemplate注入

    <bean id="RentInfoDAO" class="com.syh.SpringDemo.RentInfoDAO">
      <property name="jdbcTemplate" ref="jdbcTemplate"/>
    </bean>
四:通过DAO访问数据
package com.syh.SpringDemo;


import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
import java.util.Map;

import org.springframework.jdbc.core.JdbcTemplate;

import Spiders.RentInfo;


public class RentInfoDAO {
	private JdbcTemplate jdbcTemplate;
	private final String SQL_SELECT_RENTINFO = 
			"SELECT title,url FROM rentinfo";//查询所有行
	public void setJdbcTemplate(JdbcTemplate jdbcTemplate){
		this.jdbcTemplate = jdbcTemplate;
	}
	public JdbcTemplate geJdbcTemplate(){
		return this.jdbcTemplate;
	}

	public List<RentInfo> getRentInfo(){
		List<RentInfo> rentInfos = new ArrayList<>();
		List<Map<String, Object>> list = jdbcTemplate.queryForList(this.SQL_SELECT_RENTINFO);
		Iterator<Map<String, Object>> iterator = list.iterator();
		while (iterator.hasNext()) {
			Map<String, Object> m = iterator.next();
			String title = m.get("title").toString();
			String url = m.get("url").toString();
			RentInfo r = new RentInfo();
			r.setTitle(title);
			r.setUrl(url);
			rentInfos.add(r);
		}
		return rentInfos;
	}
}




版权声明:本文为qq_21255915原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。