`

【Spring+JDBC+DBCP】JdbcTemplate使用例子

阅读更多
引用


1. BaseDAO.java
public interface BaseDAO {
	public void updatePerson(Person person);
	public List<Map<String, Object>> searchPersons();
	public Map<String, Object> searchPerson(Person person);
}

2. PersonDAO.java
import java.util.Map;
import javax.sql.DataSource;
import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.jdbc.core.JdbcTemplate;
import org.springframework.test.context.ContextConfiguration;
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
import springinaction.base.BaseDAO;
 
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(locations={"classpath:section5/sec5.xml"})

public class PersonDAO implements BaseDAO{

	@Autowired
	@Qualifier("dataSource")
	private DataSource dataSource;
	private static final String SEARCH_ALL = "select * from person";
	private static final String SEARCH_BY_ID = "select * from person where id = ?";
	private static final String UPDATEBYID = "update person set age = ? where id = ?";
	   
	private JdbcTemplate jdbcTemplate;
	   
	public void setJdbcTemplate(JdbcTemplate jdbcTemplate) {
		this.jdbcTemplate = jdbcTemplate;
	}

	public void updatePerson(Person person) {
		jdbcTemplate.update(UPDATEBYID, new Object[]{person.getAge(), person.getId()});
	}

	public List<Map<String, Object>> searchPersons() {
		return jdbcTemplate.queryForList(SEARCH_ALL);
	}  
	
	public Map<String, Object> searchPerson(Person person) {
		return jdbcTemplate.queryForMap(SEARCH_BY_ID, person.getId());
	}
	
}

3. PersonTest.java
import java.util.HashMap;
import java.util.Map;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.test.context.ContextConfiguration;
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
import springinaction.base.BaseDAO;
 
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(locations={"classpath:section5/sec5.xml"})

public class PersonTest {

	   @Autowired
	   @Qualifier("person")
	   private Person person;

	   @Autowired
	   @Qualifier("personDAO")
	   private BaseDAO personDAO;
	   
	   List<Map<String, Object>> resultList = null;
	   Map<String, Object> resultmap = null;
	   
	   @Test
	   public void updatePersonTest() {
		   person.setId(2);
		   person.setAge(3);
		   personDAO.updatePerson(person);
		   
		   resultmap = personDAO.searchPerson(person);
		   System.out.println(resultmap);
	   }

	   @Test
	   public void searchPersonsTest() {
		   resultList = personDAO.searchPersons();
		   System.out.println(resultList);
	   } 
}

4.sec5.xml
	<bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource">
		<property name="driverClassName" value="com.mysql.jdbc.Driver"/>
   		<property name="url" value="jdbc:mysql://localhost/test" />
   		<property name="username" value="root" />
   		<property name="password" value="1111" />
   		<property name="initialSize" value="5" />
   		<property name="maxActive" value="10" />
	</bean>
       
	<bean id="jdbcTemplate" class="org.springframework.jdbc.core.JdbcTemplate">
		<property name="dataSource" ref="dataSource" />
	</bean>
    
    <bean id="person" class="springinaction.section5.Person"/>
    
    <bean id="personDAO" class="springinaction.section5.PersonDAO">
    	<property name="jdbcTemplate" ref="jdbcTemplate"/>
    </bean>	   


分享到:
评论

相关推荐

    Spring+JDBC实例

    当我们谈论"Spring+JDBC实例"时,通常是指在Spring框架中使用JDBC进行数据访问的方式,这种方式可以利用Spring提供的便利性,同时保留对数据库的直接控制。 在Spring框架中,JDBC操作被封装在`org.springframework....

    spring jdbcTemplet demo

    首先,Spring JDBCTemplate是Spring的Data Access/Integration模块中的核心组件,它提供了一种更高级别的抽象,比直接使用JDBC更加简洁和健壮。它通过模板方法模式处理了诸如打开和关闭数据库连接、处理异常和事务...

    spring mvc配置 + dbcp数据源+jdbcTemplate

    在本配置中,我们将探讨如何将Spring MVC与Apache DBCP数据源和JdbcTemplate结合使用,以实现高效、安全的数据库操作。 Apache DBCP(Database Connection Pool)是一个连接池组件,它允许应用在多个用户之间共享...

    spring+jdbc组合开发

    在Spring中使用JDBC,我们可以利用`JdbcTemplate`或`SimpleJdbcTemplate`,这两个都是对JDBC的轻量级封装,提供了更安全、更易于使用的API。例如,`UserServiceImp`可能包含了这些模板方法来执行SQL查询、更新、插入...

    Spring+JDBC组合开发及环境搭建

    2. **Spring JDBC模块**:Spring JDBC模块是对JDBC的封装,提供了更高级别的抽象,如JdbcTemplate和NamedParameterJdbcTemplate,可以简化数据库操作,处理异常,自动关闭资源,避免繁琐的JDBC代码。 3. **环境搭建...

    spring+jdbc开发环境

    Spring提供了一个JdbcTemplate类,它简化了JDBC代码,避免了手动处理结果集和异常。我们可以通过声明一个JdbcTemplate Bean,并在需要的地方注入它,从而方便地执行SQL查询和更新操作。 事务管理是企业级应用的关键...

    spring+jdbc整合

    首先,Spring框架通过其JDBC抽象层,为开发者提供了一种更高级别的数据访问机制,降低了直接使用JDBC的复杂性。它包括DataSource、JdbcTemplate、SimpleJdbcTemplate以及NamedParameterJdbcTemplate等组件。这些组件...

    Spring+JDBC组合开发

    Spring通过JdbcTemplate和NamedParameterJdbcTemplate两个核心接口,为开发者提供了一种简洁、安全的JDBC抽象层。它们消除了手动创建和关闭连接、预编译SQL语句以及处理结果集等繁琐工作,降低了出错的可能性。 1. ...

    Spring+JDBC集成学习笔记(可参考ppt附件38-46页)

    &lt;bean id="jdbcTemplate" class="org.springframework.jdbc.core.JdbcTemplate"&gt; ``` #### (3) 执行SQL操作 现在,我们可以使用JdbcTemplate执行SQL查询、更新、插入等操作,如下所示: ```java jdbcTemplate....

    spring+jdbc整合jar.rar

    当Spring与JDBC结合使用时,Spring提供了高级抽象,如JdbcTemplate和NamedParameterJdbcTemplate,可以更方便地执行SQL查询,处理结果集,并管理数据库连接。 压缩包中的文件如下: 1. spring.jar:这是Spring框架...

    Spring+Jdbc scott用户的调用存储过程

    压缩包中的“Spring10SpringJDBC2”文件名可能暗示包含的是关于Spring JDBC的第十章内容或者是关于Spring JDBC的进阶部分,可能包括了如何调用存储过程的示例代码或更详细的教程。 综上所述,本主题涵盖的知识点...

    SpringJDBC.rar_SpringJDBC_jdbctemplate_jdbctemplate spring

    下面我们将详细探讨Spring JDBC的核心概念、工作原理以及如何使用JdbcTemplate进行数据库操作。 1. **Spring JDBC概述** Spring JDBC是Spring框架的一部分,它提供了一种抽象层,使得开发者可以避免编写大量的JDBC...

    spring+JdbcTemple+dbcp数据源 的xml实现

    标题 "spring+JdbcTemple+dbcp数据源的xml实现" 涉及到的是在Java环境中,使用Spring框架整合JDBC模板(JdbcTemplate)和Apache的DBCP数据库连接池来管理数据库连接的方式。这一组合是Java后端开发中常见的数据库...

    baobaotao源码springmvc+spring+springjdbc技术栈maven配置

    《Spring MVC + Spring + Spring JDBC 技术栈与Maven配置详解》 在现代企业级应用开发中,Spring框架以其强大的功能和灵活的扩展性深受开发者喜爱。本篇将深入探讨一个基于Spring MVC、Spring JDBC的技术栈项目——...

    spring声明式事务管理+jdbc+连接池.zip

    在Spring中,我们可以使用`JdbcTemplate`或`NamedParameterJdbcTemplate`来进行数据库操作。这些模板类封装了常见的JDBC操作,如打开和关闭连接、预编译SQL语句、处理结果集等,使得代码更简洁且易于维护。同时,...

    spring_JDBC整合包

    Spring JDBC是Spring框架的一个重要模块,它简化了Java数据库连接(JDBC)的使用,提供了更高级别的抽象,使得数据库操作更加简洁、易管理和模块化。这个"spring_JDBC整合包"显然包含了进行Spring JDBC开发所需的...

    spring-jdbc(jdbctemplate)所需jar包

    使用Spring JDBC和JdbcTemplate的主要优点有: 1. **异常转换**:JdbcTemplate会将数据库抛出的SQLException转换为Spring的DataAccessException,简化了异常处理逻辑。 2. **自动处理结果集**:对于查询操作,...

    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,带一小例子

    5. **DataSource**: Spring-JDBC通过AbstractDataSource类提供对各种数据源的抽象,允许开发者选择合适的JDBC数据源实现,如Apache Commons DBCP或HikariCP。数据源管理是Spring容器的责任,可以通过配置文件或编程...

Global site tag (gtag.js) - Google Analytics