欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

spring与数据库 博客分类: Spring基础 spring基础数据库访问 

程序员文章站 2024-02-13 16:22:46
...

概述:

数据是应用程序的血液。鉴于数据的重要地位,以健壮、简单和清晰的方式开发应用程序的数据访问部分就显得举足轻重了。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实战学习笔记