`

SpringJdbc的几种不同的用法

    博客分类:
  • java
阅读更多
Spring对jdbc做了良好的封装,本人在学习时做了以下几种方式的尝试
首页先来创建一个dao接口
package com.wys.dao;

public interface IUserDao {
	void save();
}



第一种方式通过继承JdbcDaoSupport来获取JdbcTemplate,需要注入JdbcTemplate
package com.wys.dao.impl;

import java.util.Map;

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


import com.wys.dao.IUserDao;

public class UserDaoImpl extends JdbcDaoSupport implements IUserDao {
	
	
	@Override
	public void save() {
		String sql = "**********";
		Map<String,?> map = this.getJdbcTemplate().queryForMap(sql);
		System.out.println("成功!");
		
	}
	
	

}


配置文件如下:
<bean id="jdbcTemplate" class="org.springframework.jdbc.core.JdbcTemplate">
		<property name="dataSource" ref="dataSource" />
	</bean>
	<bean id="userImpDao" class="com.wys.dao.impl.UserDaoImpl">
		<property name="jdbcTemplate" ref="jdbcTemplate" />
</bean>

JdbcTemplate提供了众多的对数据库操作的方法
第二种方法是组合JdbcTemplate,因为JdbcTemplate的创建需要注入DataSource,所以这里只需要直接注入DataSource就可以
package com.wys.dao.impl;

import java.util.Map;

import javax.sql.DataSource;

import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
import org.springframework.jdbc.core.JdbcTemplate;
import org.springframework.jdbc.core.simple.SimpleJdbcTemplate;
import org.springframework.jdbc.core.support.JdbcDaoSupport;


import com.wys.dao.IUserDao;

public class UserDao2Impl implements IUserDao {
	
	private JdbcTemplate jdbcTemplate;

	
	@Override
	public void save() {
		
		String sql = "******";		
		Map<String,?> map = this.jdbcTemplate.queryForMap(sql);
		
		System.out.println("成功!");
		
		

	}
	//注入DataSource 
	public void setDataSource(DataSource dataSource) {
		jdbcTemplate = new JdbcTemplate(dataSource);
	}
	
		
	

}



配置文件
<bean id="userImpl2Dao" class="com.wys.dao.impl.UserDao2Impl">
		<property name="dataSource" ref="dataSource" />
	</bean>


第三种方法是继承SimpleJdbcDaoSupport,通过SimpleJdbcDaoSupport可以获取SimpleJdbcTemplate,SimpleJdbcTemplate里也提供了大量的操作数据库的方法,因为SimpleJdbcDaoSupport继承了JdbcDaoSupport,所有可以获得JdbcTemplate,JdbcTemplate相对SimpleJdbcTemplate提供了更多和更高级的一些操作的方法,根据需要来使用,这里只需要直接注入JdbcTemplate,因为SimpleJdbcTemplate是通过JdbcTemplate来创建的
package com.wys.dao.impl;

import java.util.Map;

import javax.sql.DataSource;

import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
import org.springframework.jdbc.core.simple.SimpleJdbcDaoSupport;
import org.springframework.jdbc.core.simple.SimpleJdbcTemplate;
import org.springframework.jdbc.core.support.JdbcDaoSupport;


import com.wys.dao.IUserDao;

public class UserDao3Impl extends SimpleJdbcDaoSupport implements IUserDao {
	
	
	
	@Override
	public void save() {
		
		String sql = "***";		
		Map<String,Object> map = this.getSimpleJdbcTemplate().queryForMap(sql);//SimpleJdbcTemplate
		Map<String,Object> map2 = this.getJdbcTemplate().queryForMap(sql);//JdbcTemplate
		
				
		System.out.println("成功!");

	}
	
	
	
	
}


配置如下:
<bean id="userImpl3Dao" class="com.wys.dao.impl.UserDao3Impl">
		<property name="jdbcTemplate" ref="jdbcTemplate" />
	</bean>

第四种直接组合SimpleJdbcTemplate,因为SimpleJdbcTemplate的创建是需要DataSource的,所以需要注入DataSource
package com.wys.dao.impl;

import java.util.Map;

import javax.sql.DataSource;

import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
import org.springframework.jdbc.core.JdbcTemplate;
import org.springframework.jdbc.core.simple.SimpleJdbcTemplate;
import org.springframework.jdbc.core.support.JdbcDaoSupport;


import com.wys.dao.IUserDao;

public class UserDao4Impl implements IUserDao {
	
	private SimpleJdbcTemplate jdbcTemplate;

	
	@Override
	public void save() {
		
		String sql = "******";		
		Map<String,?> map = this.jdbcTemplate.queryForMap(sql);
		
		System.out.println("成功!");
		
		

	}
	
	public void setDataSource(DataSource dataSource) {
		jdbcTemplate = new SimpleJdbcTemplate(dataSource);
	}
	
		
	

}


配置文件:
<bean id="userImpl4Dao" class="com.wys.dao.impl.UserDao4Impl">
		<property name="dataSource" ref="dataSource" />
	</bean>


第五种方法也是组全JdbcTemplate,直接注入JdbcTemplate,而不是DataSource ,因为在JdbcTemplate中已经注入了DataSource
package com.wys.dao.impl;

import java.util.Map;

import javax.sql.DataSource;

import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
import org.springframework.jdbc.core.JdbcTemplate;
import org.springframework.jdbc.core.simple.SimpleJdbcTemplate;
import org.springframework.jdbc.core.support.JdbcDaoSupport;


import com.wys.dao.IUserDao;

public class UserDao5Impl implements IUserDao {
	
	private JdbcTemplate jdbcTemplate;

	
	public void setJdbcTemplate(JdbcTemplate jdbcTemplate) {
		this.jdbcTemplate = jdbcTemplate;
	}



	@Override
	public void save() {
		
		String sql = "*****";		
		Map<String,?> map = this.jdbcTemplate.queryForMap(sql);		
		System.out.println("成功!");

	}		
	
	
}



配置如下
<bean id="jdbcTemplate" class="org.springframework.jdbc.core.JdbcTemplate">
		<property name="dataSource" ref="dataSource" />
	</bean>
<bean id="userImpl5Dao" class="com.wys.dao.impl.UserDao5Impl">
		<property name="jdbcTemplate" ref="jdbcTemplate" />
	</bean>


其实方法还有很多种,关键是看你是需要继承还是组合,需要注入的对象是什么!


1
1
分享到:
评论
2 楼 RAYFUXK 2016-03-25  
DataSource的配置的XML的文件怎么写?
1 楼 yonghong915 2011-09-29  
支持一上,很不错的!

相关推荐

    spring jdbc.zip

    本篇将深入探讨Spring JDBC的核心概念、使用方法以及它如何通过JdbcTemplate对象简化JDBC的开发。 首先,让我们了解Spring JDBC的基本理念。Spring JDBC的目标是减少传统JDBC代码的复杂性和易错性,通过提供一套...

    SpringJDBC

    在Spring JDBC中,主要涉及到以下几个关键概念: 1. **JdbcTemplate**: 这是Spring JDBC的核心接口,提供了大量用于执行SQL语句的方法,如`update()`, `query()`, `call()`, 等。这些方法能自动处理数据源连接的...

    Spring JDBC相关jar包:spring_jdbc_4.0.0.zip

    Spring JDBC模块的主要目标是减少对JDBC API的直接依赖,通过提供一种更加高级、易于使用的编程模型来简化数据库访问。在这个“spring_jdbc_4.0.0.zip”压缩包中,包含的是Spring JDBC 4.0.0版本的jar文件,即...

    基于SpringJDBC的BaseDAO

    Spring JDBC是Spring框架的一部分,它简化了JDBC编程模型,提供了一种更简单、更高效的方式来处理数据库交互。通过Spring JDBC,开发者可以减少对JDBC API的手动错误处理和资源管理,从而能够更加专注于业务逻辑的...

    spring jdbc 实例源码

    Spring JDBC是Spring框架的一部分,它提供了一种抽象层,使得开发者可以更方便地使用Java数据库连接(JDBC)来操作数据库。在这个实例源码中,我们看到的是一个基于`epet`宠物项目的完整实现,该项目可能包括了创建...

    SpringJDBC笔记

    Spring JDBC 不仅简化了对 JDBC 的使用,还通过集成 Apache DBCP 和 C3P0 两种数据源实现提供了丰富的配置选项。开发人员可以根据具体的应用场景和需求选择合适的数据源,从而提高应用程序的性能和稳定性。通过对...

    java开发之SSS整合教程.继SSH,SSM之后,spring全家桶SSS问世,数据库采用SpringJDBC

    "Spring JDBC入门 - SangS - 博客园.url" 和 "SpringJdbc的几种不同的用法 - 低调开发 - ITeye技术网站.url" 可能包含了一些关于如何使用SpringJDBC的基本教程和高级技巧,包括批处理操作、动态SQL和自定义SQL查询等...

    spring jdbc

    描述中的博客链接指向了 iteye.com 上的一篇博客文章,虽然具体内容无法在这里直接引用,但通常这样的文章会涵盖 Spring JDBC 的基础概念、配置、使用方法,以及可能包括一些最佳实践或常见问题的解决方案。...

    spring-jdbc源码

    通过使用模板方法设计模式,Spring-JdbcTemplate能够在不牺牲灵活性的同时,保证了代码的简洁性和可维护性。 接着,让我们来看看DataSourceTransactionManager,它是Spring提供的事务管理器,主要用于管理基于...

    Spring mvc + Spring + Spring jdbc 整合 demo.rar

    【标题】"Spring mvc + Spring + Spring jdbc 整合 demo.rar" 提供了一个整合了Spring MVC、Spring和Spring JDBC的示例项目。这个压缩包包含了一整套使用Java EE技术栈开发的Web应用程序,主要关注于后端数据处理和...

    spring-jdbc.rar_goldenw65_map25w_sellwof_spring-jdbc

    Spring JDBC是Spring框架中用于简化JDBC操作的重要模块,它提供了一种更加方便、灵活的方式来处理数据库交互。本资源“spring-jdbc.rar”包含的资料旨在帮助开发者理解并掌握Spring JDBC的基本原理和核心功能,从而...

    Spring、SpringMVC入门及整合JDBC、Mybatis

    Spring可以独立使用,也可以与Struts、Mybatis等其他框架整合使用,为企业级应用开发提供了一种低耦合度的解决方案。Spring框架主要包括以下几个方面的内容: 1. 依赖注入(IOC):依赖注入是Spring框架的核心功能...

    SpringJDBC:Spring中的数据库操作

    Spring JDBC是Spring框架的一部分,它提供了一种抽象层,使得我们能够更方便地使用Java的JDBC(Java Database Connectivity)来处理数据库操作。这个模块的主要目标是简化数据库访问,同时保持JDBC的强大功能,避免...

    spring-jdbc-4.2.4.RELEASE.jar,spring-tx-4.2.4.RELEASE.jar,jdbcTemplate使用的jar包

    `JdbcTemplate`是Spring提供的一种模板方法模式实现,它封装了JDBC的常用操作,如执行SQL查询、更新等,提供了异常转换和数据源管理等功能。通过使用`JdbcTemplate`,开发者可以编写出更简洁、更健壮的数据库访问...

    spring几种Dao支持配置

    以下将详细阐述Spring对DAO支持的几种配置方式: 1. **JDBC DAO支持:** Spring通过`JdbcTemplate`和`SimpleJdbcInsert`等类提供了对JDBC的抽象,减少了直接使用JDBC代码的繁琐性。`JdbcTemplate`提供了一组模板...

    SpringJDBC批量处理数据代码示例

    在Java开发中,Spring JDBC是Spring...总的来说,Spring JDBC提供了强大的批量处理能力,通过`NamedParameterJdbcTemplate`的`batchUpdate`方法,我们可以轻松地实现数据的批量插入和更新,有效提升数据库操作的效率。

    spring学习:JDBC数据访问

    5. **数据库事务的隔离级别和传播行为**:Spring定义了不同的事务传播行为,如REQUIRED、REQUIRES_NEW等,以及四种常见的事务隔离级别,如READ_UNCOMMITTED、READ_COMMITTED等,这些都可以在配置中设置。 6. **...

    spring 整合全部jar包

    在“spring 整合全部jar包”中,我们涉及了Spring框架的几个关键模块:Spring IOC(Inversion of Control,控制反转)、Spring AOP(Aspect Oriented Programming,面向切面编程)、Spring JDBC(Java Database ...

    第十一章 Spring4 JDBC

    Spring4对JDBC的支持旨在简化数据库访问,提供了一种更高级别的抽象,以减少手动处理JDBC时的繁琐工作。这一章将深入探讨Spring4如何通过其JDBC抽象层来提升开发效率和代码的可维护性。 【描述】 这篇博客可能详细...

Global site tag (gtag.js) - Google Analytics