`

Spring_Jdbc的几种不同用法

 
阅读更多

via: http://vsp.iteye.com/blog/1182887

 

SpringJdbc的几种不同的用法

 

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("成功!");  

    }  

}  

 

配置文件如下: 

Java代码  收藏代码

<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.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>  

 

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

 

分享到:
评论

相关推荐

    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文件,即...

    spring-jdbc.rar_goldenw65_map25w_sellwof_spring-jdbc

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

    spring-jdbc源码

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

    spring jdbc.zip

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

    Kingbase_v8_R3JDBC驱动.zip

    使用Kingbase_v8_R3JDBC驱动时,开发者需要注意以下几点: 1. 确保Java环境和JDBC驱动版本兼容。 2. 正确配置数据库连接参数,如主机名、端口、数据库名、用户名和密码。 3. 处理好数据库连接的打开和关闭,避免资源...

    SpringJDBC

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

    Spring_Spring_Hibernate_HibernateTemplate

    本篇将深入探讨Spring与Hibernate的集成,特别是Spring提供的HibernateTemplate,它是Spring对Hibernate的一种封装,简化了数据库操作。我们将围绕以下几点进行详细讲解: 1. **Spring框架基础**: Spring是一个...

    spring_day04

    在Spring中,有几种常见的`PlatformTransactionManager`实现: - `DataSourceTransactionManager`: 它适用于基于JDBC的事务管理,直接与数据库的数据源交互来管理事务。 - `HibernateTransactionManager`: 专为...

    spring_mybatis_dtd_lib

    例如,Spring的bean配置文件通常使用`&lt;beans&gt;`元素作为根节点,并且通过DTD来验证配置文件的合法性。 **4. MySQL数据库** MySQL是一种流行的开源关系型数据库管理系统,版本5.1是其一个重要的里程碑,提供了事务...

    spring_FrameWork3.0

    - **内置的 Resource 应用:** Spring 内置了几种 Resource 实现,如 FileSystemResource、ClassPathResource 等。 - **ResourceLoader:** ResourceLoader 接口提供了获取 Resource 的方法,可以方便地获取到应用...

    Spring_2.5.6_api_chm格式_无脚本错误

    5. **Web MVC**: Spring的Model-View-Controller(MVC)框架提供了一种优雅的方式来构建Web应用程序,它支持自定义视图解析器、本地化、主题等功能,并允许开发者选择不同的视图技术,如JSP、FreeMarker或Thymeleaf...

    chapter13_java_spring_

    服务层使用Spring的接口和实现类来定义业务逻辑,而数据访问层则利用Spring的JDBC模板或MyBatis框架与数据库交互。Spring MVC是Spring提供的一种Web开发模式,它将请求处理、视图渲染和业务逻辑分离,使得代码更加...

    基于SpringJDBC的BaseDAO

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

    strust_api spring_api

    Struts API 和 Spring API 是两个在Java开发领域中至关重要的框架的接口文档。...在实际开发过程中,开发者通常会将Struts用于前端请求处理,而Spring则用于后端服务和业务逻辑,形成一种有效的组合使用方式。

    spring_hibernate_整合

    3. **事务管理**:Spring提供了一种声明式事务管理方式,通过`@Transactional`注解可以在方法级别控制事务。整合Hibernate时,我们需要配置`PlatformTransactionManager`,通常是`HibernateTransactionManager`,它...

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

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

    Spring、SpringMVC入门及整合JDBC、Mybatis

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

    SpringJDBC笔记

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

    第十一章 Spring4 JDBC

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

    spring jdbc 实例源码

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

Global site tag (gtag.js) - Google Analytics