`
jackylt_lu
  • 浏览: 4448 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
最近访客 更多访客>>
社区版块
存档分类
最新评论

使用Spring+JDBC组合步骤

    博客分类:
  • JAVA
阅读更多

使用Spring+JDBC组合步骤如下:

一、首先:配置数据源如:

在配置数据源时,先添加spring开发能力,添加库文件{

Spring 2.5 AOP Libraries

Spring 2.5 Core Libraries

Spring 2.5 Persistence Core Libraries

Spring 2.5 Persistence JDBC Libraries    //这个可不要忘了加

}

注意: ${}是把dataSource的属性放到properties文档里面

 <bean id="dataSource"
  class="org.apache.commons.dbcp.BasicDataSource">
  <property name="driverClassName"
   value="${driverClassName}">
  </property>
  <property name="url"
   value="${url}">
  </property>
  <property name="username" value="${username}"></property>
  <property name="password" value="${password}"></property>
  <!-- 连接池启动时的初始值 -->
  <property name="initialSize" value="${initialSize}"></property>
  <!-- 连接池的最大值 -->
  <property name="maxActive" value="${maxActive}"></property>
  <!-- 最大空间值、当经过一个高峰时间后,连接池可以慢慢将已经用不到的连接慢慢释放一部分,直至减少的maxIdle为止 -->
  <property name="maxIdle" value="${maxIdle}"></property>
  <!-- 最小空间值,当空间的连接数少于阀值时,连接池就会预申请一些连接,以免洪峰来时 来不及申请 -->
  <property name="minIdle" value="${minIdle}"></property>
 </bean>

 可以把配置放到属性文件里面去 jdbc.properties

driverClassName=com.mysql.jdbc.Driver
url=jdbc\:mysql\://localhost\:3306/test?useUnicode\=true&characterEncoding\=UTF-8
username=root
password=fly
initialSize=1
maxActive=500
maxIdle=2
minIdle=1

 在spring容器中加入下面代码

<context:property-placeholder location="classpath:jdbc.properties"/>

二、配置事务,配置事务时,需要在xml配置文件中引入用于声明事务的tx命名空间,

事务的配置有两种:注解方式和基于XML配置方式

在这里我采用“注解方式”如:  <bean id="txManager"
  class="org.springframework.jdbc.datasource.DataSourceTransactionManager"
  abstract="false" lazy-init="default"
  dependency-check="default">
  <property name="dataSource">           //要求注入数据源,dataSource是我们自己定义的数据源
   <ref bean="dataSource" />
  </property>
 </bean>

  我们采用注解方式,

<!-- 采用@Transaction注解方式使用事务 -->

<tx:annotation-driven transaction-manager="txManager"/>   //transaction-manager属性指定事务管理器

首先添加tx:的命名空间:红色的是tx的命名空间

<beans xmlns="http://www.springframework.org/schema/beans"
 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
 xmlns:aop="http://www.springframework.org/schema/aop"
 xmlns:context="http://www.springframework.org/schema/context"
 xmlns:tx="http://www.springframework.org/schema/tx"
 xsi:schemaLocation="http://www.springframework.org/schema/beans  
           http://www.springframework.org/schema/beans/spring-beans-2.5.xsd  
           http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-2.5.xsd  
           http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-2.5.xsd  
           http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-2.5.xsd">

</beans>

 经过这几步的配置,我们已经配置好了spring到jdbc的集成

spring容器中的全部配置:如下:可以直接拷贝使用

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
 xmlns:aop="http://www.springframework.org/schema/aop"
 xmlns:context="http://www.springframework.org/schema/context"
 xmlns:tx="http://www.springframework.org/schema/tx"
 xsi:schemaLocation="http://www.springframework.org/schema/beans  
           http://www.springframework.org/schema/beans/spring-beans-2.5.xsd  
           http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-2.5.xsd  
           http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-2.5.xsd  
           http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-2.5.xsd">
 <context:property-placeholder location="classpath:jdbc.properties"/>
 <bean id="dataSource"
  class="org.apache.commons.dbcp.BasicDataSource">
  <property name="driverClassName"
   value="${driverClassName}">
  </property>
  <property name="url"
   value="${url}">
  </property>
  <property name="username" value="${username}"></property>
  <property name="password" value="${password}"></property>
  <!-- 连接池启动时的初始值 -->
  <property name="initialSize" value="${initialSize}"></property>
  <!-- 连接池的最大值 -->
  <property name="maxActive" value="${maxActive}"></property>
  <!-- 最大空间值、当经过一个高峰时间后,连接池可以慢慢将已经用不到的连接慢慢释放一部分,直至减少的maxIdle为止 -->
  <property name="maxIdle" value="${maxIdle}"></property>
  <!-- 最小空间值,当空间的连接数少于阀值时,连接池就会预申请一些连接,以免洪峰来时 来不及申请 -->
  <property name="minIdle" value="${minIdle}"></property>
 </bean>
 <bean id="txManager"
  class="org.springframework.jdbc.datasource.DataSourceTransactionManager"
  abstract="false" lazy-init="default" 
  dependency-check="default">
  <property name="dataSource">
   <ref bean="dataSource" />
  </property>
 </bean>
 <tx:annotation-driven transaction-manager="txManager"/>
 <bean id="personService" class="com.xt.service.impl.PersonServiceBean">
 <property name="dataSource" ref="dataSource" /> 
 </bean>
</beans>

 三、接下来,建表,编写业务逻辑,增删查改

建表:表名:person

          字段:id Intege  primary key  autoincrment 自增

          字段:name varchar(20)

首先:定义接口:PersionService

package com.xt.service;

import java.util.List;

import com.xt.bean.Person;

public interface PersonService {
 
 public void save(Person person);
 
 public void update(Person person);
 
 public Person getPerson(Integer personid);
 
 public List<Person> getPersons();
 
 public void delete(Integer personid);
 
}

 

建立bean类 :Person

package com.xt.bean;
public class Person {
 public Integer id;
 public String name;
 public Person(){};
 public Person(String name) {
  this.name=name;
 }
 public Integer getId() {
  return id;
 }
 public void setId(Integer id) {
  this.id = id;
 }
 public String getName() {
  return name;
 }
 public void setName(String name) {
  this.name = name;
 }
}


给PersonService接口,创建实现类PersonServiceBean

package com.xt.service.impl;
import java.util.List;
import javax.sql.DataSource;
import org.springframework.jdbc.core.JdbcTemplate;
import org.springframework.transaction.annotation.Transactional;
import com.xt.bean.Person;
import com.xt.service.PersonService;
@Transactional
public class PersonServiceBean implements PersonService {
 private JdbcTemplate jdbcTemplate;   //我们使用spring提供的JdbcTemplate类进行管理,
 public void setDataSource(DataSource dataSource) {
  this.jdbcTemplate = new JdbcTemplate(dataSource);
 }
 @Transactional(rollbackFor=Exception.class)
 public void delete(Integer personid) {
  jdbcTemplate.update("delete from person where id=?",
    new Object[]{personid},
    new int[]{java.sql.Types.INTEGER}); }
 
 public Person getPerson(Integer personid) {
  return (Person)jdbcTemplate.queryForObject("select *from person where id=?",
    new Object[]{personid}, new PersonRowMapper());  
 }
 @SuppressWarnings("unchecked")
 public List<Person> getPersons() {
  return (List<Person>)jdbcTemplate.query("select * from person", new PersonRowMapper());  
 }
 public void save(Person person) {
  jdbcTemplate.update("insert into person(name) values(?)",
    new Object[]{person.getName()}, new int[]{java.sql.Types.VARCHAR});
 }
 public void update(Person person) {
  jdbcTemplate.update("update person set name=? where id=?",
    new Object[]{person.getName()},
    new int[]{java.sql.Types.VARCHAR,java.sql.Types.INTEGER});
 }

}

还需要一个回调接口PersonRowMapper

package com.xt.service.impl;
import java.sql.ResultSet;
import java.sql.SQLException;
import org.springframework.jdbc.core.RowMapper;
import com.xt.bean.Person;
public class PersonRowMapper implements RowMapper {
 public Object mapRow(ResultSet rs, int index) throws SQLException {
  Person person = new Person(rs.getString("name"));
  person.setId(rs.getInt("id"));
  return person;
 }
}

把PersonServiceBean交给spring,把下面的代码加到spring容器管理

 <bean id="personService" class="com.xt.service.impl.PersonServiceBean">
 <property name="dataSource" ref="dataSource" />    //获取数据源
 </bean>

然后,我们来进行测试建立一个单元测试

package junit.test;
import org.junit.BeforeClass;
import org.junit.Test;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
import com.xt.bean.Person;
import com.xt.service.PersonService;
public class PersonServiceBeanTest {
 private static PersonService personService;
 @BeforeClass
 public static void setUpBeforeClass() throws Exception {
  ApplicationContext cxt = new ClassPathXmlApplicationContext(
    "/applicationContext.xml");
  personService = (PersonService) cxt.getBean("personService");
 }
 @Test
 public void save() {
  for (int i = 0; i < 5; i++) {
   personService.save(new Person("众志成城" + i));
  }
 }
 @Test
 public void update() {
  Person person = personService.getPerson(1);
  person.setName("我是大好人");
  System.out.println(person.getName());
 }
 @Test
 public void getPerson() {
  Person person = personService.getPerson(1);
  System.out.println(person.getName());
 }
 @Test
 public void delete() {
  personService.delete(2);
 }
 @Test
 public void getBeans() {
  for (Person p : personService.getPersons())
   System.out.println(p.getId() + "   =  " + p.getName());
 }
}

 

分享到:
评论

相关推荐

    struts+spring+jdbc集成步骤

    Struts、Spring和Jdbc的集成是其中的一个经典组合,它们各自的优势互补,共同构建出高效、可维护的Web应用系统。下面将详细阐述这一集成过程的关键步骤。 #### 一、建立WEB PROJECT 首先,通过MyEclipse创建一个新...

    struts1+spring2.5.6+jdbc配置

    Struts1、Spring 2.5.6 和 JDBC 是经典的Java Web开发技术组合,它们各自在应用程序架构中扮演着不同的角色。Struts1是MVC(Model-View-Controller)框架,Spring则是一个全面的轻量级应用框架,而JDBC(Java ...

    spring+mybatis+jdbc.rar

    标题中的“spring+mybatis+jdbc.rar”表明这是一个基于Java技术栈的项目,主要使用了Spring、MyBatis和JDBC三个核心组件。这是一套常见的企业级应用框架,用于构建后端服务。 1. Spring:Spring是Java领域的一个...

    SpringMVC+Spring+JDBC环境下的项目.7z

    SpringMVC、Spring和JDBC是Java Web开发中常用的三个技术框架,它们组合在一起形成了SSM(Spring MVC、Spring、MyBatis)架构的一种变体。在这个项目中,"SpringMVC+Spring+JDBC环境"指的是利用这些技术构建一个完整...

    用Maven搭建Spring+Spring MVC+Hibernate框架

    总结起来,使用Maven在Eclipse中搭建Spring+Spring MVC+Hibernate框架涉及以下步骤: 1. 创建Maven项目,配置`pom.xml`。 2. 配置Spring和Spring MVC的XML配置文件。 3. 设置Hibernate配置,创建实体类。 4. 构建Web...

    spring+mvc+quartz.rar

    《Spring MVC + Quartz 整合实现...这一组合不仅提供了强大的任务调度能力,还结合了Spring MVC的Web处理优势,使得任务管理更加便捷直观。在实际项目中,这种方案已被广泛采用,为企业的自动化运维提供了有力支撑。

    gralde+spring+springmvc+springjdbc+mysql

    以上就是使用`Gradle`、`Spring`、`Spring MVC`、`Spring JDBC`和`MySQL`实现单表数据操作的基本步骤。这个过程中,我们利用了Spring Boot的自动配置特性,减少了大量手动配置的工作,同时通过Spring Data JPA简化了...

    SSM框架-详细整合教程(Spring+SpringMVC+MyBatis).pdf

    SSM框架,即Spring、SpringMVC和MyBatis的集成,是Java开发中常见的Web应用程序框架组合。这个框架集合提供了完整的后端解决方案,涵盖了依赖注入(DI)、面向切面编程(AOP)、模型视图控制器(MVC)以及持久层操作...

    Spring+SpringMVC+Mybatis框架整合例子(SSM) 下载

    Spring、SpringMVC和Mybatis是Java开发中最常用的三大开源框架,它们的整合使用,通常被称为SSM框架。这个框架组合提供了完整的后端服务解决方案,包括依赖注入(DI)、面向切面编程(AOP)、模型-视图-控制器(MVC...

    Spring+SpringMVC+Mybatis框架整合例子(SSM)

    SSM(Spring+SpringMVC+Mybatis)是Java开发中常用的三大开源框架的组合,广泛应用于企业级Web应用开发。本文将深入解析SSM框架的整合过程及其核心概念。 首先,Spring框架是整个SSM中的基石,它提供了一个全面的...

    使用intellij idea搭建MAVEN+SSM(Spring+SpringMVC+MyBatis

    在Java开发领域,Spring、SpringMVC和MyBatis框架的组合,简称SSM,是构建Web应用程序的常用技术栈。IntelliJ IDEA作为一款强大的Java集成开发环境,提供了便捷的工具来搭建这样的项目。以下是详细步骤: 1. **安装...

    Struts2+Spring+Hibernate组合开发

    在上述过程中,"v512工作室_刘伟_Hibernate与Struts2和Spring组合开发.pdf"这份文档可能会提供详细的步骤和示例,帮助你更深入地理解和实践Struts2+Spring+Hibernate的整合开发。记得根据实际情况调整配置,以适应你...

    Spring+SpringMVC+Mybatis框架整合

    SSM框架是Java Web开发中常用的一种组合,由Spring、SpringMVC和Mybatis三大组件构成。这个框架整合为开发者提供了高效、灵活的开发环境,适用于构建复杂的企业级应用。 **1. Spring框架** Spring是Java领域的一个...

    Spring+Mybatis+Mysql项目框架

    本项目框架“Spring+Mybatis+Mysql”就是一种常见的、高效的Java Web开发组合,适用于初学者和专业人士进行学习和参考。下面将详细讲解这个框架的核心组成部分及其作用。 1. **Spring框架**:Spring是一个开源的...

    ssm(Spring+SpringMVC+MyBatis)整合框架

    SSM框架,即Spring、SpringMVC和MyBatis的集成,是Java Web开发中常用的一种轻量级框架组合。这三种技术各有其特点,结合使用可以构建出高效、灵活的Web应用程序。下面我们将深入探讨这三个框架的原理、整合过程以及...

    Struts+Spring+Hibernate框架搭建

    其中,“SSH”即Struts+Spring+Hibernate组合是最为经典且广泛使用的集成方案之一。 ##### 1.1 框架 在Java Web应用开发过程中,合理选择和利用框架是非常重要的。一个好的框架不仅可以帮助开发人员减少重复工作,...

    Spring+springMVC+Mybatis+Maven项目

    【Spring+SpringMVC+Mybatis+Maven项目】是一个典型的Java Web开发框架组合,用于构建高效、可扩展的企业级应用程序。在这个项目中,Spring作为核心容器管理组件,SpringMVC处理HTTP请求和响应,Mybatis则负责数据库...

    spring+ibatis+webwork框架搭配

    本文将深入探讨如何结合使用Spring、Ibatis(现称为MyBatis)以及WebWork这三个流行的Java开发框架来构建高效的应用程序。具体而言,我们将重点关注如何配置这些框架以实现良好的集成效果,并特别关注在Oracle数据库...

    Spring mvc、 Spring、 Spring jdbc 整合 demo

    - 在数据访问层中,使用Spring JDBC的JdbcTemplate或NamedParameterJdbcTemplate来执行SQL语句。 - 在Service层,通过AOP实现事务管理,确保数据一致性。 - 编写Controller,接收并处理HTTP请求,调用Service层...

    ibatis+Spring+struts2整合实例

    本实例关注的是“ibatis+Spring+struts2”的整合,这是一个经典的Java Web开发组合,用于实现数据访问、业务逻辑控制和用户界面交互。下面我们将深入探讨这三个组件及其整合的关键知识点。 1. **iBATIS**:iBATIS...

Global site tag (gtag.js) - Google Analytics