在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版权协议,转载请附上原文出处链接和本声明。