`

spring与数据库

阅读更多

概述:

数据是应用程序的血液。鉴于数据的重要地位,以健壮、简单和清晰的方式开发应用程序的数据访问部分就显得举足轻重了。Spring对JDBC的支持简化了各种持久化机制都存在的样板代码,这使我们只需关注与应用程序相关的数据访问即可。

Spring能够捕获框架的特定异常并将其转化成异常体系中的非检查型异常,对于Spring支持的所有持久化框架,这个异常体系都是一致的。这包含了将JDBC所抛出的语义不清的SQLException异常转换成为含义更丰富的异常,后者描述了导致异常抛出的实际问题。

 

初步步骤:
要在自己的应用中使用Spring,需要有一个xml的配置文件,还要有相应的DAO类。首先,在xml中需要声明的有datasource,实际上也是声明一个bean,这个bean也有相关的属性,便是datasource的配置。除了datasource,为了访问数据库还需要一个DAO的bean,在这个bean中datasouce被当作一个引用属性被注入到其中,以供DAO使用。

 

具体步骤:

1、在xml配置文件中声明数据源,可以使用数据源连接池,当然也可以使用基于JDBC驱动的数据源,当然前者在并发访问等方面具有更多的优势,而后者的优势就是简单。下面是一个基于JDBC驱动的数据源的例子。

	<bean id="dataSource" 
		class="org.springframework.jdbc.datasource.DriverManagerDataSource">
		<property name="driverClassName" value="org.h2.Driver"/>
		<property name="url" value="jdbc:h2:G:\database\data"/>
		<property name="username" value="sa"/>
		<property name="password" value=""/>
	</bean>

 

2、设计DAO类,DAO类中包含了对数据库的各种操作,可以是增删改查等。其类的声明和普通类的声明是一样的。其主体的方法部分,便是实现操作的具体方式。下面的是一个查询的方法的例子。

	public User getUserByAccount(String account) {
			return this.getJdbcTemplate().queryForObject(
					"select * from user where account=?",
					new ParameterizedRowMapper<User>() {
						public User mapRow(ResultSet rs,int rowNum)
							throws SQLException{
							User user = new User();
							user.setAccount(rs.getString(1));
							user.setPassword(rs.getString(2));
							user.setOther(rs.getString(3));
							return user;
						}
					},
					account
					);
	}

 

3、将相应的DAO类注册为bean,并为其注入datasource属性。这个过程是在xml的配置文件中完成的。只有几行代码,很简单。

	<bean id="userDao" class="springjdbc.UserDao">
	
	    <property name="dataSource" ref="dataSource"/>
	</bean>

 

 

 

在Spring中使用JNDI数据源连接池

1、在web工程的META-INF目录中创建context.xml文件。

<?xml version="1.0" encoding="UTF-8"?>
<Context>
      <Resource name="jdbc/demoDB" auth="Container" 
      type="javax.sql.DataSource"
      driverClassName="com.mysql.jdbc.Driver"
      url="jdbc:mysql://localhost:3306/demo"
      username="root"
      password="123"
      maxActive="50"
      maxIdle="30"
      maxWait="10000" />
</Context>

 

2、在Spring的配置文件中配置数据源。

    <bean id="dataSource" class="org.springframework.jndi.JndiObjectFactoryBean">  
        <property name="jndiName">  
            <value>java:comp/env/jdbc/demoDB</value>  
        </property>  
    </bean> 

 3、在dao的bean中应用数据源。

 <bean id="userDao" class="dao.UserDao">
      <property name="dataSource" ref="dataSource"/>
 </bean>

 

 

总结:

通过上面的步骤便可以使用spring来访问数据库,spring给数据库的访问带来了很大的方便。且其丰富的异常体系更异常的处理也变得更方便了。当然上面的例子都是不完整,去掉了次要的部分,只留下了关键的部分,并进行了说明。

 

注:Spring实战学习笔记

 

分享到:
评论

相关推荐

    spring和数据库层的结合

    ### Spring与数据库层整合的关键知识点 #### 一、Spring与持久化层的整合:O/R Mapping **O/R Mapping(对象关系映射)**是一种编程技术,用于将面向对象的应用程序中的数据转换成关系型数据库中的记录。在Java...

    spring连接数据库代码

    Spring 连接数据库代码详解 Spring 连接数据库是 Java 企业级应用程序中的一项重要技术,通过 Spring 框架,可以轻松地实现数据库的连接和操作。本文将详细讲解如何使用 Spring 连接数据库,包括创建数据库、配置 ...

    spring连接数据库实例

    Spring框架是Java开发中广泛使用的轻量级框架,...通过这些知识点,我们可以高效地在Spring应用中实现与数据库的交互,提高开发效率。在实际项目中,还可以结合Spring Data JPA或MyBatis等ORM框架进一步提升开发体验。

    Spring连数据库所需jar包

    Spring连数据库所需jar包,包括aopalliance-1.0.jar;aspectjweaver-1.6.8.jar;c3p0-0.9.5.4.jar com.springsource.net.sf.cglib-2.2.0.jar commons-logging-1.1.3.jar mysql-connector-java-5.1.8.jar spring-aop-...

    spring配置数据库文件

    spring配置数据库文件,连接数据库的一写配置文件

    spring多数据库

    在Spring框架中,多数据库的支持是一项重要的功能,它允许开发者在一个应用中同时连接并操作多个数据库。这在处理跨系统数据交互、数据隔离或者不同数据源的场景下非常有用。"spring多数据库"项目就是针对这种需求而...

    spring 数据库动态切换

    5. **测试与验证**:编写测试用例,确保在不同条件下能正确切换到相应的数据库。可以通过修改切换逻辑的输入参数,观察实际连接的数据库是否符合预期。 在提供的压缩包文件"switchdatas"中,可能包含了示例代码、...

    Spring数据库连接等配置加密

    本文将详细探讨"Spring数据库连接等配置加密"这一主题。 首先,我们来看`dbconfig.properties`文件,这是Spring项目中常见的用于存储数据库连接配置的文件。通常,这个文件会包含如下内容: ``` # 数据库连接配置 ...

    初学SpringCloud连接Oracle数据库

    在初学SpringCloud的过程中,与Oracle数据库的连接是构建分布式系统的一个重要环节。SpringCloud作为一个微服务框架,提供了丰富的服务治理功能,而数据库作为数据存储的核心,与SpringBoot的集成使得我们可以轻松...

    spring security与数据库交互实现简单例子

    在这个简单的例子中,我们将探讨如何利用Spring Security与数据库进行交互来实现用户认证和授权。 首先,`applicationContext-security.xml`是Spring Security的配置文件,它定义了安全相关的bean和规则。这个文件...

    spring框架、数据库池连接等之间连接的jar包.rar

    综上所述,这个"spring框架、数据库池连接等之间连接的jar包"包含了Spring框架与数据库连接池相关的类库,便于开发者快速构建使用Spring和MySQL的Java应用。通过合理配置和使用这些jar包,可以大大提高应用的稳定性...

    spring boot数据库应用

    spring boot数据库应用

    spring boot 常用数据库操作例子

    本示例主要关注Spring Boot与JPA(Java Persistence API)的集成,用于数据库操作。JPA是Java EE平台的一部分,提供了一种标准的方式来管理和持久化应用程序中的对象到关系数据库。 首先,让我们详细了解一下Spring...

    spring Batch实现数据库大数据量读写

    Spring Batch 是一个强大的、可扩展的Java框架,专门用于处理批量数据处理任务,包括大量数据库数据的读取、处理和写入。它被设计为在企业级应用中处理大规模、高吞吐量的工作负载。本篇文章将深入探讨如何利用...

    Spring-test做数据库操作的单元测试2-跨库访问

    综上所述,"Spring-test做数据库操作的单元测试2-跨库访问"这个主题涵盖了许多关键概念,包括Spring-test的运行机制、多数据源配置、事务管理以及测试的准备与清理。这些知识点对于开发涉及跨库操作的应用程序,确保...

    Spring Security 把授权信息写入数据库

    在处理与数据库交互方面,Spring Security提供了更强大的支持,包括长期的remember-me功能和基于数据库的角色与用户管理API。 24.2. 目标 在原有应用中,用户信息和资源访问控制已经在数据库中管理。目标是将现有...

    在应用层透过spring解决数据库读写分离

    在应用层透过Spring解决数据库读写分离 数据库读写分离是指将数据库的读取和写入操作分开处理,以提高数据库的性能和可用性。在应用层解决数据库读写分离可以通过Spring框架来实现,本文将介绍如何使用Spring解决...

    Spring与非关系数据库搭配使用

    首先,Spring框架提供了强大的数据访问抽象层,使得开发者可以轻松地与各种数据库交互,包括关系型数据库如MySQL、Oracle,以及非关系型数据库如MongoDB、Cassandra等。Spring Data项目是这一抽象层的核心,它为多种...

    Springcloud 多数库 多数据源整合,查询动态切换数据库

    本主题聚焦于在Spring Cloud环境中实现多数据库和多数据源的整合,并且能够动态切换查询的数据库。这是一个复杂但至关重要的需求,特别是在大型企业级应用中,可能需要根据业务逻辑或用户权限连接到不同的数据库。 ...

    SpringSecurity 2 权限基于数据库--完整DEMO(带数据库文件)

    本DEMO展示了如何将SpringSecurity与SSH(Spring、Struts2、Hibernate)集成,实现基于数据库的权限管理。在这个完整的示例中,我们将探讨以下几个关键知识点: 1. **SpringSecurity配置**: - SpringSecurity的...

Global site tag (gtag.js) - Google Analytics