引用
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提供的便利性,同时保留对数据库的直接控制。 在Spring框架中,JDBC操作被封装在`org.springframework....
首先,Spring JDBCTemplate是Spring的Data Access/Integration模块中的核心组件,它提供了一种更高级别的抽象,比直接使用JDBC更加简洁和健壮。它通过模板方法模式处理了诸如打开和关闭数据库连接、处理异常和事务...
在本配置中,我们将探讨如何将Spring MVC与Apache DBCP数据源和JdbcTemplate结合使用,以实现高效、安全的数据库操作。 Apache DBCP(Database Connection Pool)是一个连接池组件,它允许应用在多个用户之间共享...
在Spring中使用JDBC,我们可以利用`JdbcTemplate`或`SimpleJdbcTemplate`,这两个都是对JDBC的轻量级封装,提供了更安全、更易于使用的API。例如,`UserServiceImp`可能包含了这些模板方法来执行SQL查询、更新、插入...
2. **Spring JDBC模块**:Spring JDBC模块是对JDBC的封装,提供了更高级别的抽象,如JdbcTemplate和NamedParameterJdbcTemplate,可以简化数据库操作,处理异常,自动关闭资源,避免繁琐的JDBC代码。 3. **环境搭建...
Spring提供了一个JdbcTemplate类,它简化了JDBC代码,避免了手动处理结果集和异常。我们可以通过声明一个JdbcTemplate Bean,并在需要的地方注入它,从而方便地执行SQL查询和更新操作。 事务管理是企业级应用的关键...
首先,Spring框架通过其JDBC抽象层,为开发者提供了一种更高级别的数据访问机制,降低了直接使用JDBC的复杂性。它包括DataSource、JdbcTemplate、SimpleJdbcTemplate以及NamedParameterJdbcTemplate等组件。这些组件...
Spring通过JdbcTemplate和NamedParameterJdbcTemplate两个核心接口,为开发者提供了一种简洁、安全的JDBC抽象层。它们消除了手动创建和关闭连接、预编译SQL语句以及处理结果集等繁琐工作,降低了出错的可能性。 1. ...
<bean id="jdbcTemplate" class="org.springframework.jdbc.core.JdbcTemplate"> ``` #### (3) 执行SQL操作 现在,我们可以使用JdbcTemplate执行SQL查询、更新、插入等操作,如下所示: ```java jdbcTemplate....
当Spring与JDBC结合使用时,Spring提供了高级抽象,如JdbcTemplate和NamedParameterJdbcTemplate,可以更方便地执行SQL查询,处理结果集,并管理数据库连接。 压缩包中的文件如下: 1. spring.jar:这是Spring框架...
压缩包中的“Spring10SpringJDBC2”文件名可能暗示包含的是关于Spring JDBC的第十章内容或者是关于Spring JDBC的进阶部分,可能包括了如何调用存储过程的示例代码或更详细的教程。 综上所述,本主题涵盖的知识点...
下面我们将详细探讨Spring JDBC的核心概念、工作原理以及如何使用JdbcTemplate进行数据库操作。 1. **Spring JDBC概述** Spring JDBC是Spring框架的一部分,它提供了一种抽象层,使得开发者可以避免编写大量的JDBC...
标题 "spring+JdbcTemple+dbcp数据源的xml实现" 涉及到的是在Java环境中,使用Spring框架整合JDBC模板(JdbcTemplate)和Apache的DBCP数据库连接池来管理数据库连接的方式。这一组合是Java后端开发中常见的数据库...
《Spring MVC + Spring + Spring JDBC 技术栈与Maven配置详解》 在现代企业级应用开发中,Spring框架以其强大的功能和灵活的扩展性深受开发者喜爱。本篇将深入探讨一个基于Spring MVC、Spring JDBC的技术栈项目——...
在Spring中,我们可以使用`JdbcTemplate`或`NamedParameterJdbcTemplate`来进行数据库操作。这些模板类封装了常见的JDBC操作,如打开和关闭连接、预编译SQL语句、处理结果集等,使得代码更简洁且易于维护。同时,...
Spring JDBC是Spring框架的一个重要模块,它简化了Java数据库连接(JDBC)的使用,提供了更高级别的抽象,使得数据库操作更加简洁、易管理和模块化。这个"spring_JDBC整合包"显然包含了进行Spring JDBC开发所需的...
使用Spring JDBC和JdbcTemplate的主要优点有: 1. **异常转换**:JdbcTemplate会将数据库抛出的SQLException转换为Spring的DataAccessException,简化了异常处理逻辑。 2. **自动处理结果集**:对于查询操作,...
Spring JDBC模块的主要目标是减少对JDBC API的直接依赖,通过提供一种更加高级、易于使用的编程模型来简化数据库访问。在这个“spring_jdbc_4.0.0.zip”压缩包中,包含的是Spring JDBC 4.0.0版本的jar文件,即...
5. **DataSource**: Spring-JDBC通过AbstractDataSource类提供对各种数据源的抽象,允许开发者选择合适的JDBC数据源实现,如Apache Commons DBCP或HikariCP。数据源管理是Spring容器的责任,可以通过配置文件或编程...