spring与数据库 博客分类: Spring基础 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基础数据库访问
-
简化Spring XML配置 博客分类: Spring基础 spring基础
-
Spring中整合Titles 博客分类: Spring基础 SpringTiles页面布局
-
Spring自动类型转换 博客分类: Spring基础 spring类型转换
-
spring加载多个xml配置文件 博客分类: Spring基础 Spring多配置文件xml
-
Spring中整合Titles 博客分类: Spring基础 SpringTiles页面布局
-
spring加载多个xml配置文件 博客分类: Spring基础 Spring多配置文件xml
-
一个神奇的bug导致的连接不释放的问题 博客分类: bug数据库连接不释放Spring springdaoservicedruid
-
Spring JDBC-Spring事务管理之数据库事务基础知识