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基础,数据库访问)