spring 整合JDBC

使用Spring提供的三个JDBC模板类(JdbcTemplate、NamedParameterJdbcTemplate、SimpleJdbcTemplate)操作数据库

一、JdbcTemplate是Spring中最主要的JDBC模板, 利用JDBC和简单的索引參数查询对数据库进行简单訪问

二、NamedParameterJdbcTemplate可以在查询的时候把值绑定到SQL里的命名參数,而不是索引參数

NamedParameterJdbcTemplate内部包括了一个JdbcTemplate,所以JdbcTemplate能做的事情NamedParameterJdbcTemplate都能干;

NamedParameterJdbcTemplate相对于JdbcTemplate主要添加?了參数能够命名的功能。

三、SimpleJdbcTemplate利用Java5的特性,比方自己主动装箱、通用和可变參数列表来简化JDBC模板的使用

SimpleJdbcTemplate内部包括了一个NamedParameterJdbcTemplate;所以NamedParameterJdbcTemplate能做的事情SimpleJdbcTemplate都能干,

SimpleJdbcTemplate相对于NamedParameterJdbcTemplate主要添加?了JDK5.0的泛型和可变长度參数支持。

1、使用JDBC Template

JdbcTemplate是一个辅助类,封装了JDBC的操作,直接使用JdbcTemplate非常easy~Template仅仅依赖于数据源。

本样例使用的DriverManagerDataSource,是一个“伪”数据源,仅仅是模拟了形式,并没事实现数据源的功能。

DriverManagerDataSource ds = new DriverManagerDataSource();

ds.setDriverClassName("com.mysql.jdbc.Driver");

ds.setUrl("jdbc:mysql://localhost:3306/sampledb");

ds.setUsername("root");

ds.setPassword("");

JdbcTemplate jdbc = new JdbcTemplate();

jdbc.setDataSource(ds);

String sql = "create table t_user1(user_id int primary key,user_name varchar(60))";

jdbc.execute(sql);

2、JdbcDaoSupport,&& 让Spring JDBC更“Spring”

假设在代码中重复声明JdbcTemplate,代码会被污染的非常严重,那和JDBC没差别了就~

所以Spring提供了JdbcDaoSupport,全部DAO继承这个类,就会自己主动获得JdbcTemplate(前提是注入DataSource)。

另外:Spring的xml配置能够非常好的用在这里,在xml中配置,基本流程例如以下:

(1)声明DataSrouce的Bean,这里用BasicDataSource,就是DBCP数据源(Tomcat用的那个)

(2)声明模板JdbcTemplate的Bean,并把DataSource注入之

(3)声明Dao,class为集成自JdbcDaoSupport的东西,并注入JdbcTemplate。

上述Bean生成过程能够用Spring IDE……相当的方便。别的不说了,Code。

applicationContext.xml

<?xml version="1.0" encoding="UTF-8"?>

<beans

xmlns="http://www.springframework.org/schema/beans"

xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.5.xsd">

<bean id="dataSource"

class="org.apache.commons.dbcp.BasicDataSource" abstract="false"

lazy-init="default" autowire="default" dependency-check="default"

destroy-method="close">

<property name="driverClassName">

<value>com.mysql.jdbc.Driver</value>

</property>

<property name="url">

<value>jdbc:mysql://localhost:3306/sampledb</value>

</property>

<property name="username">

<value>root</value>

</property>

<property name="password">

<null />

</property>

</bean>

<bean id="jdbcTemplate" class="org.springframework.jdbc.core.JdbcTemplate">

<property name="dataSource">

<ref bean="dataSource" />

</property>

</bean>

<bean id="Dao" abstract="true">

<property name="jdbcTemplate">

<ref bean="jdbcTemplate" />

</property>

</bean>

<bean id="forumDAO" class="dao.jdbc.ForumDAO" parent="jdbcTemplate"

abstract="false" lazy-init="default" autowire="default"

dependency-check="default">

</bean></beans>

ForumDAO

package dao.jdbc;

import org.springframework.jdbc.core.support.JdbcDaoSupport;

public class ForumDAO extends JdbcDaoSupport

{

public void initDb()

{

String sql = "create table t_user1(user_id int primary key,user_name varchar(60))";

getJdbcTemplate().execute(sql);

}

}

Main

import org.springframework.jdbc.core.JdbcTemplate;

import org.springframework.jdbc.datasource.DriverManagerDataSource;

public class Main

{

public static void main(String args[])

{

DriverManagerDataSource ds = new DriverManagerDataSource();

ds.setDriverClassName("com.mysql.jdbc.Driver");

ds.setUrl("jdbc:mysql://localhost:3306/sampledb");

ds.setUsername("root");

ds.setPassword("");

JdbcTemplate jdbc = new JdbcTemplate();

jdbc.setDataSource(ds);

String sql = "create table t_user1(user_id int primary key,user_name varchar(60))";

jdbc.execute(sql);

}

}

spring 整合JDBC,布布扣,bubuko.com

时间: 2024-10-26 23:35:27

spring 整合JDBC的相关文章

Spring整合jdbc

首先web.xml文件跟往常一样,加载spring容器和加载org.springframework.web.context.ContextLoaderListener读取applicationContext.xml文件初进行始化. 使用spring整合jdbc工具步骤: 1.使用连接池com.mchange.v2.c3p0.ComboPooledDataSource等工具创建数据源. 2.把数据源交给LazyConnectionDataSourceProxy进行管理 3.把LazyConnect

Spring(十三)Spring整合JDBC

做开发不连接数据库怎么行!Spring整合JDBC过程中,数据源可以直接都在beans.xml里配置,也可以把数据单独放在一个properties文件里,方便维护. 首先放入各种jar包,连接MySQL当然要放数据驱动文件. jar包什么的对照项目截图,切面aspect和cglib在这个工程没用到,jar包可以不添加进来 beans.xml,在头文件加上tx事务相关的引用,其他要注意的在文件的注释里基本都点到了 <?xml version="1.0" encoding="

JAVAEE——spring03:spring整合JDBC和aop事务

一.spring整合JDBC 1.spring提供了很多模板整合Dao技术 2.spring中提供了一个可以操作数据库的对象.对象封装了jdbc技术. JDBCTemplate => JDBC模板对象 与DBUtils中的QueryRunner非常相似. //0 准备连接池 ComboPooledDataSource dataSource = new ComboPooledDataSource(); dataSource.setDriverClass("com.mysql.jdbc.Dri

Spring整合JDBC模板方法设计模式之基于继承的实现

Spring整合JDBC模板方法设计模式之基于继承的实现: 模板设计模式简单描述: 把相同的部分提取出来,当我们运行的时候自动往里面设置值,在JdbcTemplate 的源代码中得execute(). 他把公共的部分拎出来写到一个特别的函数中,当我们使用的时候把会发生变化的内容在特定的部分调用,在不同的类里面处理相同的操作,这种方式就做模板设计模式. 例如,JdbcTemplate类中的方法: // ------------------------------------------------

Spring整合JDBC模板方法设计模式之基于组合的实现

Spring整合JDBC模板方法设计模式之基于组合的实现 模板设计模式指的是将相应的模板方法提取出来在一个专门的一个位置定义,然后把相同调用过程的操作通过模板实现. 对于模板设计模式,一般有2中方式 1.基于继承的方式实现 2.基于组合的方式实现 前面实现了:1.基于继承的方式实现 ,Spring整合JDBC模板方法设计模式之基于继承的实现 接下来实现:2.基于组合的方式实现 Spring整合JDBC模板方法设计模式之基于组合的方法在我们有大量类的情况下使用特别方便. 此实现模拟了Spring中

Spring整合JDBC实现简单的增删改

Spring整合JDBC实现简单的增删改: 1.导入Spring的包和数据库的驱动包: 2.选择一个数据源(dbcp和C3P0) 3.导入数据源的包(这里我们使用dbcp) <span style="font-family:FangSong_GB2312;font-size:14px;">commons-pool-1.5.6.jar .commons-dbcp-1.4.jar(jdk6+)</span> 4.在beans.xml中创建dataSource数据源

Spring笔记(五): spring 整合jdbc、hibernate、jpa

一.简介 (一)需要的jar包 1.需要的jar包:spring.hibernate.mysql.xml.apache-commons等等的jar包.        2.以上jar包,如spring.xml和commos都是冗余的. (二)分析 1.涉及到的实体.service.dao接口.jdbc配置文件以及service实现类都可以通用,只需要实现不同的dao实现类.配置.测试类. 2.通用的源码如下: 1)实体: <span style="font-size:18px;"&

Spring整合JDBC以及AOP管理事务

本节内容: Spring整合JDBC Spring中的AOP管理事务 一.Spring整合JDBC Spring框架永远是一个容器,Spring整合JDBC其实就是Spring提供了一个对象,这个对象封装了JDBC技术,它可以操作数据库,这个对象可以放入Spring容器,交给Spring容器来管理.所以我们主要是要学习这个对象:JDBCTemplate.这个对象和DBUtils中的QueryRunner非常相似. 1. 导包 4+2+2(测试需要的包spring-test,新版本测试时还需要sp

Spring——spring整合JDBC,

spring整合JDBC spring提供了很多模板整合Dao技术 其中JdbcTemplate封装了JDBC技术,其与DBUtils中的QueryRunner非常相似. 与Web结合步骤: 1.导包 4+2 spring-testspring-aopjunit4类库 c3p0连接池JDBC驱动 spring-jdbcspring-tx事务 2.书写Dao 获取JdbcTemplate对象的方法 方式一: 继承JdbcDaoSupport类,使用super.getJdbcTemplate()获取