一、概述
(一)基本概念
1、数据访问的关键技术
我们可以将数据访问分为两个部分:一是获得数据源;二是进行数据库操作(增删改查)。
2、获得数据源的几种方法
因为只是为了记录一些关键的东西,以实用为主,因此没有过多的考虑措辞和学术上的严谨。这里指的是在Java中怎么能取得和数据源(DataSource)的联系,方法主要有传统的在程序中硬编码和通过XML注入。Spring提供三种XML注入:(1)使用Spring自带的DriverManagerDataSource;(2)使用DBCP连接池(3)使用Tomcat提供的JNDI。其中(1)可以配合Hibernate、iBatis等ORM一起使用(在XML配置文档中加入相应的配置段)。
(二)框架图
|
|
二、详细
(一)数据源注入
1. 使用org.springframework.jdbc.datasource.DriverManagerDataSource
说明:DriverManagerDataSource建立连接是只要有连接就新建一个connection,根本没有连接池的作用。
<bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource">
<property name="driverClassName"><value>${jdbc.driverClassName}</value></property>
<property name="url"><value>${jdbc.url}</value></property>
<property name="username"><value>${jdbc.username}</value></property>
<property name="password"><value>${jdbc.password}</value></property>
</bean>
<bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource">
<property name="driverClassName"><value>${jdbc.driverClassName}</value></property>
<property name="url"><value>${jdbc.url}</value></property>
<property name="username"><value>${jdbc.username}</value></property>
<property name="password"><value>${jdbc.password}</value></property>
</bean>
使用org.apache.commons.dbcp.BasicDataSource
2. 说明:这是一种推荐说明的数据源配置方式,它真正使用了连接池技术
2. 说明:这是一种推荐说明的数据源配置方式,它真正使用了连接池技术
要在Spring中使用DBCP连接池,需要引入spring-framework-2.0-ml\lob\jakarta-commons文件夹中的commons-collections.jar、commons-dbcp.jar和commons-pool.jar。
<bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource">
<property name="driverClassName">
<value>oracle.jdbc.driver.OracleDriver</value>
</property>
<property name="url">
<value>jdbc:oracle:thin:@localhost:1521:orcl</value>
</property>
<property name="username">
<value>test</value>
</property>
<property name="password">
<value>test</value>
</property>
<property name="maxActive">
<value>255</value>
</property>
<property name="maxIdle">
<value>2</value>
</property>
<property name="maxWait">
<value>120000</value>
</property>
</bean>
<bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource">
<property name="driverClassName">
<value>oracle.jdbc.driver.OracleDriver</value>
</property>
<property name="url">
<value>jdbc:oracle:thin:@localhost:1521:orcl</value>
</property>
<property name="username">
<value>test</value>
</property>
<property name="password">
<value>test</value>
</property>
<property name="maxActive">
<value>255</value>
</property>
<property name="maxIdle">
<value>2</value>
</property>
<property name="maxWait">
<value>120000</value>
</property>
</bean>
BasicDataSource提供了close()方法关闭数据源,所以必须设定destroy-method=”close”属性, 以便Spring容器关闭时,数据源能够正常关闭。除以上必须的数据源属性外,还有一些常用的属性:
defaultAutoCommit:设置从数据源中返回的连接是否采用自动提交机制,默认值为 true;
defaultReadOnly:设置数据源是否仅能执行只读操作, 默认值为 false;
maxActive:最大连接数据库连接数,设置为0时,表示没有限制;
maxIdle:最大等待连接中的数量,设置为0时,表示没有限制;
maxWait:最大等待秒数,单位为毫秒, 超过时间会报出错误信息;
validationQuery:用于验证连接是否成功的查询SQL语句,SQL语句必须至少要返回一行数据, 如你可以简单地设置为:“select count(*) from user”;
removeAbandoned:是否自我中断,默认是 false ;
removeAbandonedTimeout:几秒后数据连接会自动断开,在removeAbandoned为true,提供该值;
logAbandoned:是否记录中断事件, 默认为 false;
defaultAutoCommit:设置从数据源中返回的连接是否采用自动提交机制,默认值为 true;
defaultReadOnly:设置数据源是否仅能执行只读操作, 默认值为 false;
maxActive:最大连接数据库连接数,设置为0时,表示没有限制;
maxIdle:最大等待连接中的数量,设置为0时,表示没有限制;
maxWait:最大等待秒数,单位为毫秒, 超过时间会报出错误信息;
validationQuery:用于验证连接是否成功的查询SQL语句,SQL语句必须至少要返回一行数据, 如你可以简单地设置为:“select count(*) from user”;
removeAbandoned:是否自我中断,默认是 false ;
removeAbandonedTimeout:几秒后数据连接会自动断开,在removeAbandoned为true,提供该值;
logAbandoned:是否记录中断事件, 默认为 false;
3. 使用Tomcat提供的JNDI
分两步,第一步是配置Tomcat的context.xml;第二步是编写Spring的配置文件。
<Resource auth="Container" driverClassName="com.mysql.jdbc.Driver" factory="org.apache.tomcat.dbcp.dbcp.BasicDataSourceFactory" maxActive="20" maxIdle="10" maxWait="-1" name="jdbc/yypt" password="root" type="javax.sql.DataSource" url="jdbc:mysql://192.168.11.232:3306/zspt" username="root"/>
<bean id="dataSource" class="org.springframework.jndi.JndiObjectFactoryBean">
<property name="jndiName" value="jdbc/yypt"></property>
<property name="resourceRef">
<value>true</value>
</property>
</bean>
相关推荐
描述:“spring持久层封装,新手可用,物超所值” 标签:“spring” 根据给定的文件信息,我们将深入探讨Spring框架中持久层封装的概念、重要性和具体实现方式。 ### 一、Spring持久层封装概述 #### (一)基本...
这份文档以例子的形式讲诉了Spring持久层的封装,希望可以帮助学习的人!
### Spring持久层详解 #### 一、数据源的支持 在Spring框架中,数据源的管理是持久层设计的重要组成部分。Spring提供了多种数据源的支持,包括`DriverManagerDataSource`,但通常这种数据源不推荐用于生产环境,...
在Spring的MVC Web应用程序中,持久层技术是不可或缺的一部分,它主要用于处理数据存储和检索。JdbcTemplate作为Spring框架提供的一种轻量级的数据库访问工具,是实现持久层操作的重要手段。本文将深入探讨...
HibernateTemplate是Spring对流行ORM框架Hibernate的封装,它简化了Hibernate的使用,提供了事务管理和对象/关系映射的透明性。 1. **对象操作**:HibernateTemplate提供了save()、update()、delete()等方法,可以...
总的来说,结合Spring和Hibernate开发事务持久层,可以帮助开发者更高效地管理数据访问,降低系统复杂性,并提升代码的可维护性。通过熟练掌握这两者的结合使用,可以在Java开发中达到事半功倍的效果。
综上所述,Spring Boot整合持久层技术大大简化了数据访问的复杂性,无论是通过Spring Data JPA的便捷操作,还是MyBatis的灵活SQL,都能有效提升开发效率。在实际项目中,根据需求选择合适的技术,并进行合理的配置和...
"SpringBoot框架基础上使用MyBatis简化持久层开发" 使用SpringBoot框架基础上使用MyBatis简化持久层开发,是当前流行的开发模式之一。该模式可以简化持久层开发,提高开发效率,降低开发成本。下面是使用SpringBoot...
"这是一个可以和spring整合的db封装"这个标题暗示了我们正在处理一个与Spring框架集成的数据库访问层组件。这个组件可能是为了方便开发者在Spring环境中更高效、更简洁地操作数据库。 描述中提到的"db封装"通常指的...
Java中的JdbcTemplate是Spring框架提供的一种用于简化JDBC(Java Database Connectivity)操作的工具,它在数据持久层操作中扮演着重要角色。JdbcTemplate通过消除大量重复的JDBC样板代码,提高了代码的可读性和可...
Mybatis是一款轻量级的持久层框架,它避免了几乎所有的JDBC代码和手动设置参数以及获取结果集。通过提供自定义SQL、存储过程以及高级映射,Mybatis使得开发者能够专注于编写高质量的代码,而无需关心底层数据库交互...
Spring MVC负责处理HTTP请求并提供视图层的管理,而MyBatis则是一个轻量级的持久层框架,专注于SQL映射和数据库交互。将这两个框架进行封装,可以极大地提高开发效率,简化项目结构,并促进代码的可维护性。下面将...
全书共分14章,内容涵盖了Spring的基础概念、核心容器、Spring AOP、事务处理、持久层封装、Web框架、定时器、Spring和Struts、Spring和Hibernate、Spring和Ant、Spring和Junit。本书适用于...
Java持久层框架是Java开发中用于数据库操作的关键技术,它为开发者提供了抽象化的数据库访问机制,使得开发者可以避免直接编写繁琐的SQL语句,提高开发效率。本资料包"基于Java的持久层框架,零配置,零SQL操作持久...
SpringBoot简化了Spring应用的初始搭建以及开发过程,而MyBatis则是一个优秀的持久层框架,它支持定制化SQL、存储过程以及高级映射。现在我们将深入探讨"springboot+mybatis封装第二版"这一主题。 首先,"最小侵入...
#### 一、Spring与持久化层的整合:O/R Mapping **O/R Mapping(对象关系映射)**是一种编程技术,用于将面向对象的应用程序中的数据转换成关系型数据库中的记录。在Java领域,Spring框架通过与ORM工具如Hibernate...
全书共分14章,内容涵盖了Spring的基础概念、核心容器、Spring AOP、事务处理、持久层封装、Web框架、定时器、Spring和Struts、S pring和Hibernate、Spring和Ant、Spring和Junit。本书适用于初、中级软件开发人员...
MyBatis是一个轻量级的持久层框架,它允许开发者编写原生的SQL语句并将其与Java代码绑定。这样的设计提供了更多的灵活性,尤其是在处理复杂查询或性能调优时。开发者可能为了项目需求,或是对现有MyBatis的扩展或...
Spring MVC 提供了模型-视图-控制器(MVC)架构模式,用于处理 Web 请求,而 Mybatis 是一个轻量级的持久层框架,简化了 SQL 操作与 Java 代码的集成。将两者无缝对接,可以极大地提高开发效率,减少重复工作。 ...