Spring学习笔记1——Spring JDBC

来源:互联网 发布:电影网站数据库设计 编辑:程序博客网 时间:2024/05/21 06:35


在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;}}



1 0
原创粉丝点击