`
yangjb
  • 浏览: 33106 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

SpringJdbc的几种不同的用法

 
阅读更多
Spring对jdbc做了良好的封装,本人在学习时做了以下几种方式的尝试
首页先来创建一个dao接口

Java代码 
1.package com.wys.dao;  
2. 
3.public interface IUserDao {  
4.    void save();  
5.} 
package com.wys.dao;

public interface IUserDao {
void save();
}



第一种方式通过继承JdbcDaoSupport来获取JdbcTemplate,需要注入JdbcTemplate

Java代码 
1.package com.wys.dao.impl;  
2. 
3.import java.util.Map;  
4. 
5.import org.springframework.jdbc.core.support.JdbcDaoSupport;  
6. 
7. 
8.import com.wys.dao.IUserDao;  
9. 
10.public class UserDaoImpl extends JdbcDaoSupport implements IUserDao {  
11.      
12.      
13.    @Override 
14.    public void save() {  
15.        String sql = "**********";  
16.        Map<String,?> map = this.getJdbcTemplate().queryForMap(sql);  
17.        System.out.println("成功!");  
18.          
19.    }  
20.      
21.      
22. 
23.} 
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代码 
1.<bean id="jdbcTemplate" class="org.springframework.jdbc.core.JdbcTemplate">  
2.        <property name="dataSource" ref="dataSource" />  
3.    </bean>  
4.    <bean id="userImpDao" class="com.wys.dao.impl.UserDaoImpl">  
5.        <property name="jdbcTemplate" ref="jdbcTemplate" />  
6.</bean> 
<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就可以

Java代码 
1.package com.wys.dao.impl;  
2. 
3.import java.util.Map;  
4. 
5.import javax.sql.DataSource;  
6. 
7.import org.springframework.context.ApplicationContext;  
8.import org.springframework.context.support.ClassPathXmlApplicationContext;  
9.import org.springframework.jdbc.core.JdbcTemplate;  
10.import org.springframework.jdbc.core.simple.SimpleJdbcTemplate;  
11.import org.springframework.jdbc.core.support.JdbcDaoSupport;  
12. 
13. 
14.import com.wys.dao.IUserDao;  
15. 
16.public class UserDao2Impl implements IUserDao {  
17.      
18.    private JdbcTemplate jdbcTemplate;  
19. 
20.      
21.    @Override 
22.    public void save() {  
23.          
24.        String sql = "******";        
25.        Map<String,?> map = this.jdbcTemplate.queryForMap(sql);  
26.          
27.        System.out.println("成功!");  
28.          
29.          
30. 
31.    }  
32.    //注入DataSource   
33.    public void setDataSource(DataSource dataSource) {  
34.        jdbcTemplate = new JdbcTemplate(dataSource);  
35.    }  
36.      
37.          
38.      
39. 
40.} 
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);
}




}



配置文件

Java代码 
1.<bean id="userImpl2Dao" class="com.wys.dao.impl.UserDao2Impl">  
2.        <property name="dataSource" ref="dataSource" />  
3.    </bean> 
<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来创建的

Java代码 
1.package com.wys.dao.impl;  
2. 
3.import java.util.Map;  
4. 
5.import javax.sql.DataSource;  
6. 
7.import org.springframework.context.ApplicationContext;  
8.import org.springframework.context.support.ClassPathXmlApplicationContext;  
9.import org.springframework.jdbc.core.simple.SimpleJdbcDaoSupport;  
10.import org.springframework.jdbc.core.simple.SimpleJdbcTemplate;  
11.import org.springframework.jdbc.core.support.JdbcDaoSupport;  
12. 
13. 
14.import com.wys.dao.IUserDao;  
15. 
16.public class UserDao3Impl extends SimpleJdbcDaoSupport implements IUserDao {  
17.      
18.      
19.      
20.    @Override 
21.    public void save() {  
22.          
23.        String sql = "***";       
24.        Map<String,Object> map = this.getSimpleJdbcTemplate().queryForMap(sql);//SimpleJdbcTemplate  
25.        Map<String,Object> map2 = this.getJdbcTemplate().queryForMap(sql);//JdbcTemplate  
26.          
27.                  
28.        System.out.println("成功!");  
29. 
30.    }  
31.      
32.      
33.      
34.      
35.} 
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("成功!");

}




}


配置如下:

Java代码 
1.<bean id="userImpl3Dao" class="com.wys.dao.impl.UserDao3Impl">  
2.        <property name="jdbcTemplate" ref="jdbcTemplate" />  
3.    </bean> 
<bean id="userImpl3Dao" class="com.wys.dao.impl.UserDao3Impl">
<property name="jdbcTemplate" ref="jdbcTemplate" />
</bean>

第四种直接组合SimpleJdbcTemplate,因为SimpleJdbcTemplate的创建是需要DataSource的,所以需要注入DataSource

Java代码 
1.package com.wys.dao.impl;  
2. 
3.import java.util.Map;  
4. 
5.import javax.sql.DataSource;  
6. 
7.import org.springframework.context.ApplicationContext;  
8.import org.springframework.context.support.ClassPathXmlApplicationContext;  
9.import org.springframework.jdbc.core.JdbcTemplate;  
10.import org.springframework.jdbc.core.simple.SimpleJdbcTemplate;  
11.import org.springframework.jdbc.core.support.JdbcDaoSupport;  
12. 
13. 
14.import com.wys.dao.IUserDao;  
15. 
16.public class UserDao4Impl implements IUserDao {  
17.      
18.    private SimpleJdbcTemplate jdbcTemplate;  
19. 
20.      
21.    @Override 
22.    public void save() {  
23.          
24.        String sql = "******";        
25.        Map<String,?> map = this.jdbcTemplate.queryForMap(sql);  
26.          
27.        System.out.println("成功!");  
28.          
29.          
30. 
31.    }  
32.      
33.    public void setDataSource(DataSource dataSource) {  
34.        jdbcTemplate = new SimpleJdbcTemplate(dataSource);  
35.    }  
36.      
37.          
38.      
39. 
40.} 
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);
}




}


配置文件:

Java代码 
1.<bean id="userImpl4Dao" class="com.wys.dao.impl.UserDao4Impl">  
2.        <property name="dataSource" ref="dataSource" />  
3.    </bean> 
<bean id="userImpl4Dao" class="com.wys.dao.impl.UserDao4Impl">
<property name="dataSource" ref="dataSource" />
</bean>


第五种方法也是组全JdbcTemplate,直接注入JdbcTemplate,而不是DataSource ,因为在JdbcTemplate中已经注入了DataSource

Java代码 
1.package com.wys.dao.impl;  
2. 
3.import java.util.Map;  
4. 
5.import javax.sql.DataSource;  
6. 
7.import org.springframework.context.ApplicationContext;  
8.import org.springframework.context.support.ClassPathXmlApplicationContext;  
9.import org.springframework.jdbc.core.JdbcTemplate;  
10.import org.springframework.jdbc.core.simple.SimpleJdbcTemplate;  
11.import org.springframework.jdbc.core.support.JdbcDaoSupport;  
12. 
13. 
14.import com.wys.dao.IUserDao;  
15. 
16.public class UserDao5Impl implements IUserDao {  
17.      
18.    private JdbcTemplate jdbcTemplate;  
19. 
20.      
21.    public void setJdbcTemplate(JdbcTemplate jdbcTemplate) {  
22.        this.jdbcTemplate = jdbcTemplate;  
23.    }  
24. 
25. 
26. 
27.    @Override 
28.    public void save() {  
29.          
30.        String sql = "*****";         
31.        Map<String,?> map = this.jdbcTemplate.queryForMap(sql);         
32.        System.out.println("成功!");  
33. 
34.    }         
35.      
36.      
37.} 
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("成功!");

}


}



配置如下

Java代码 
1.<bean id="jdbcTemplate" class="org.springframework.jdbc.core.JdbcTemplate">  
2.        <property name="dataSource" ref="dataSource" />  
3.    </bean>  
4.<bean id="userImpl5Dao" class="com.wys.dao.impl.UserDao5Impl">  
5.        <property name="jdbcTemplate" ref="jdbcTemplate" />  
6.    </bean> 
<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.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