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模块的主要目标是减少对JDBC API的直接依赖,通过提供一种更加高级、易于使用的编程模型来简化数据库访问。在这个“spring_jdbc_4.0.0.zip”压缩包中,包含的是Spring JDBC 4.0.0版本的jar文件,即...
Spring JDBC是Spring框架中用于简化JDBC操作的重要模块,它提供了一种更加方便、灵活的方式来处理数据库交互。本资源“spring-jdbc.rar”包含的资料旨在帮助开发者理解并掌握Spring JDBC的基本原理和核心功能,从而...
通过使用模板方法设计模式,Spring-JdbcTemplate能够在不牺牲灵活性的同时,保证了代码的简洁性和可维护性。 接着,让我们来看看DataSourceTransactionManager,它是Spring提供的事务管理器,主要用于管理基于...
本篇将深入探讨Spring JDBC的核心概念、使用方法以及它如何通过JdbcTemplate对象简化JDBC的开发。 首先,让我们了解Spring JDBC的基本理念。Spring JDBC的目标是减少传统JDBC代码的复杂性和易错性,通过提供一套...
在Spring JDBC中,主要涉及到以下几个关键概念: 1. **JdbcTemplate**: 这是Spring JDBC的核心接口,提供了大量用于执行SQL语句的方法,如`update()`, `query()`, `call()`, 等。这些方法能自动处理数据源连接的...
本篇将深入探讨Spring与Hibernate的集成,特别是Spring提供的HibernateTemplate,它是Spring对Hibernate的一种封装,简化了数据库操作。我们将围绕以下几点进行详细讲解: 1. **Spring框架基础**: Spring是一个...
使用Kingbase_v8_R3JDBC驱动时,开发者需要注意以下几点: 1. 确保Java环境和JDBC驱动版本兼容。 2. 正确配置数据库连接参数,如主机名、端口、数据库名、用户名和密码。 3. 处理好数据库连接的打开和关闭,避免资源...
在Spring中,有几种常见的`PlatformTransactionManager`实现: - `DataSourceTransactionManager`: 它适用于基于JDBC的事务管理,直接与数据库的数据源交互来管理事务。 - `HibernateTransactionManager`: 专为...
例如,Spring的bean配置文件通常使用`<beans>`元素作为根节点,并且通过DTD来验证配置文件的合法性。 **4. MySQL数据库** MySQL是一种流行的开源关系型数据库管理系统,版本5.1是其一个重要的里程碑,提供了事务...
- **内置的 Resource 应用:** Spring 内置了几种 Resource 实现,如 FileSystemResource、ClassPathResource 等。 - **ResourceLoader:** ResourceLoader 接口提供了获取 Resource 的方法,可以方便地获取到应用...
5. **Web MVC**: Spring的Model-View-Controller(MVC)框架提供了一种优雅的方式来构建Web应用程序,它支持自定义视图解析器、本地化、主题等功能,并允许开发者选择不同的视图技术,如JSP、FreeMarker或Thymeleaf...
服务层使用Spring的接口和实现类来定义业务逻辑,而数据访问层则利用Spring的JDBC模板或MyBatis框架与数据库交互。Spring MVC是Spring提供的一种Web开发模式,它将请求处理、视图渲染和业务逻辑分离,使得代码更加...
Spring JDBC是Spring框架的一部分,它简化了JDBC编程模型,提供了一种更简单、更高效的方式来处理数据库交互。通过Spring JDBC,开发者可以减少对JDBC API的手动错误处理和资源管理,从而能够更加专注于业务逻辑的...
Struts API 和 Spring API 是两个在Java开发领域中至关重要的框架的接口文档。...在实际开发过程中,开发者通常会将Struts用于前端请求处理,而Spring则用于后端服务和业务逻辑,形成一种有效的组合使用方式。
6. **Spring Boot**:Spring Boot是Spring的新成员,它简化了Spring应用的初始设置和配置,提供了一种快速启动和运行Spring应用的方法。 7. **Spring Security**:Spring的安全模块,提供了一套全面的身份验证和...
3. **事务管理**:Spring提供了一种声明式事务管理方式,通过`@Transactional`注解可以在方法级别控制事务。整合Hibernate时,我们需要配置`PlatformTransactionManager`,通常是`HibernateTransactionManager`,它...
"Spring JDBC入门 - SangS - 博客园.url" 和 "SpringJdbc的几种不同的用法 - 低调开发 - ITeye技术网站.url" 可能包含了一些关于如何使用SpringJDBC的基本教程和高级技巧,包括批处理操作、动态SQL和自定义SQL查询等...
Spring可以独立使用,也可以与Struts、Mybatis等其他框架整合使用,为企业级应用开发提供了一种低耦合度的解决方案。Spring框架主要包括以下几个方面的内容: 1. 依赖注入(IOC):依赖注入是Spring框架的核心功能...
Spring JDBC 不仅简化了对 JDBC 的使用,还通过集成 Apache DBCP 和 C3P0 两种数据源实现提供了丰富的配置选项。开发人员可以根据具体的应用场景和需求选择合适的数据源,从而提高应用程序的性能和稳定性。通过对...
Spring4对JDBC的支持旨在简化数据库访问,提供了一种更高级别的抽象,以减少手动处理JDBC时的繁琐工作。这一章将深入探讨Spring4如何通过其JDBC抽象层来提升开发效率和代码的可维护性。 【描述】 这篇博客可能详细...