概述:
数据是应用程序的血液。鉴于数据的重要地位,以健壮、简单和清晰的方式开发应用程序的数据访问部分就显得举足轻重了。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实战学习笔记
相关推荐
持久化层- O/R MappingO/Mapping JDBCJDBC的集成 HibernateHibernate的集成
spring事务与数据库操作
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-...
HibernateSHibernateSpring数据库的事务HibernateSpring数据库的事务HibernateSpring数据库的事务pring数据库的事务
spring配置数据库文件,连接数据库的一写配置文件
spring连接数据库的工程实例,部署工程:myeclipse6.5,(其他的版本也没什么问题)
spring多数据库项目代码;用于多个数据库切换查询。标准spring项目.
实现如何用spring数据库连接,具体步骤和代码都有!
本源码以简单易懂的方式,讲述了spring动态切换数据库的原理和做法,内附有指导文件,按照说明操作,即可实现spring的数据库动态切换
spring整合数据库连接的方式 dbcp c3p0 proxool
极客学院java中级课程,SpringMVC系列教材——SpringMVC 与底层数据库的交互
初学SpringCloud简单配置Oracle数据库,从Oracle数据库中获取数据
在这里我把各个数据库的连接方式和其配置卸载里面,方便大家查阅
SpringBatch数据库建表语句,存储springBatch批处理过程中需要保存的数据和步骤信息
spring连接数据库,很好用,spring连接数据库,很好用
Spring Boot数据库事务控制.zip
Spring与非关系数据库搭配使用
Spring Security 把授权信息写入数据库
NULL 博文链接:https://qdjinxin.iteye.com/blog/364572
该demo包含spring boot 下使用jpa规范操作数据库的例子,包含同个项目多个数据库实例,存储过程操作,原始sql操作返回结果转换成DTO等例子。