Spring访问oracle数据库配置步骤

1.spring 对数据库访问的支持

当我们开发持久层的时候,我们面临着多种选择,比如使用JDBC、Hibernate、java持久化API或其它持久化框架。幸好的是spring能够支持所有这些持久化机制。

DAO(data access boject)数据访问对象,这个名字就很形象描述了DAO在应用程序中所扮演的角色。DAO提供了数据的读取、写入到数据库中的一种方式。它们应该以接口的方式发布功能,而应用程序的其它部分就可以通过接口来进行访问了。

2.配置数据源

spring提供了在spring上下文中配置数据源Bean的多种方式,包括:

a.通过JDBC驱动程序定义的数据源;

b.通过JNDI查找的数据源;

c.连接池的数据源;

接下我们就专门来讲讲从使用连接池获取连接的数据源!(即c点)

上下文配置Bean的代码:

<span style="font-size:18px;"><!--配置数据源 -->
	<bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource">
		<property name="driverClassName" value="oracle.jdbc.driver.OracleDriver"/>
		<property name="url" value="jdbc:oracle:thin:@localhost:1521:orcl"/>
		<property name="username" value="wwo"/>
		<property name="password" value="wwo"/>
		<!-- 连接池启动时的初始值 -->
		<property name="initialSize" value="3" />
		<!-- 连接池的最大值 -->
		<property name="maxActive" value="300" />
		<!-- 最大空闲值.当经过一个高峰时间后,连接池可以慢慢将已经用不到的连接慢慢释放一部分,一直减少到maxIdle为止 -->
		<property name="maxIdle" value="2" />
		<!-- 最小空闲值.当空闲的连接数少于阀值时,连接池就会预申请去一些连接,以免洪峰来时来不及申请 -->
		<property name="minIdle" value="1" />
		<!-- end -->
	</bean></span>

注:JDBC驱动数据源并没有池的概念,因此没有存在池属性的配置!

好了,到这一步,我们已经完成了通过数据源建立了与数据库的连接,接下来就是实际访问数据库了。

3.在Spring中集成Hibernate

Hibernate一些特性:

a.延迟加载(Lazy loading):例如一个Bean对象由其属性及另一个Bean对象组成,如果我们只关注的只是这个Bean对象的属性,那么我们可以借助于延迟加载,只抓取需要的数据;

b.预先抓取(Eager fetching):这与延迟加载是相对的,一个Bean所关联的其它Bean都会被查询出来,这就节省了多次查询的成本;

c.级联(Cascading):有时候删除一个Bean对象后,也希望其同时能数据库中删除掉与其关联的其它Bean。

Spring对Hibernate ORM框架的支持提供了与这些框架集成点以及一些附加的服务,如下所示:

a.Spring声明式事务的集成支持;

b.透明的异常处理;

c.线程安全的、轻量级的模板类;

d.DAO支持类;

e.资源管理。

4.声明会话工厂(Session Factory)

使用Hibernate的主要接口是org.hibernate.Session。Session提供了基本的数据访问功能,如保存、更新、删除以及从数据库加载对象的功能。

能过借助于Hibernate的SessionFactory来获取Session对象,SessionFactory主要负责Hibernate Session的打开、关闭以及管理。

配置在xml上下文的Bean如下:

<span style="font-size:18px;"><bean id="sessionFactory"
		class="org.springframework.orm.hibernate4.LocalSessionFactoryBean">
		<property name="dataSource" ref="dataSource"/>
		<property name="packagesToScan">
			<!--扫描一下实体目录 -->
			<list>
				<value>com.cd.entity</value>
			</list>
		</property>
		<property name="hibernateProperties">
			<props>
				<prop key="hibernate.dialect">org.hibernate.dialect.Oracle10gDialect</prop>
				<prop key="hibernate.show_sql">true</prop>
				<prop key="hibernate.format_sql"> true</prop>
				<prop key="current_session_context_class">thread</prop>
			</props>
		</property>
</bean></span>

5.创建自己的基础DAO类

Spring可以通过Spring的Hibernate模板来保证每个事务都使用同一个会话。既然Hibernate能够对其自己进行管理,那就不必要使用模板类了。接下我们直接将Hibernate Session装配到自己的DAO类中。

<span style="font-size:18px;">/**
 * 基础dao
 * @param <T>
 */
public abstract class BaseDAO<T> {

	/**
	 * 注入sessionFactory
	 */
	@Autowired
	private SessionFactory sessionFactory;

	/**
	 * 获得session
	 *
	 * @return
	 */
	protected Session getCurrentSession() {
		return sessionFactory.getCurrentSession();
	}

	/**
	 * 保存
	 *
	 * @param entity
	 * @throws Exception
	 */
	public void add(T entity) throws Exception {
		getCurrentSession().save(entity);
	}

	/**
	 * 调用存储过程
	 *
	 * @param proName
	 * @return
	 */
	public CallableStatement citePro(final String proName){
		Session session = getCurrentSession();
		CallableStatement proc=session.doReturningWork(
	                new ReturningWork<CallableStatement>() {
	                    @Override
	                    public CallableStatement execute(Connection connection) throws SQLException{
	                    	CallableStatement resultSet = connection.prepareCall(proName);
	                        return resultSet;
	                    }
	                }
	        );
		return proc;
	}
}</span>
时间: 2024-11-08 15:26:00

Spring访问oracle数据库配置步骤的相关文章

C# 访问Oracle数据库

关于C#访问Oracle数据库的时候,必须安装Oracle客户端,而且必须安装和服务器相同的版本,否则会出现各种版本的不兼容问题,所以很多时候我们并不需要去安装完整的Oracle客户端,为了方便部署连接oracle的.net程序,oracle官方提供了一个简化版的client,即instant client.通过instant client和ODP.net中的Oracle.DataAccess.dll,我们就可以方便的部署.net应用程序或者站点. 1 下载和服务器对应的instant clie

Spring 访问各种数据库的配置

一.配置数据库 1.Sql server sqlserver.driverClassName=com.microsoft.sqlserver.jdbc.SQLServerDriver sqlserver.url=jdbc:sqlserver://localhost:1433;database=test;integratedSecurity=false sqlserver.username=sa sqlserver.password=123456 注释:database=test,表示访问的数据库

服务器Oracle数据库配置与客户端访问数据库的一系列必要设置

tips:所有路径请对应好自己电脑的具体文件路径. 一.服务器及Oracle数据库设置 1.刚装完的Oracle数据库中只有一个dba账户,首先需要创建一个用户. 2.配置监听,C:\app\Admin\product\12.2.0\dbhome_1\network\admin\listener.ora文件内容配置: # listener.ora Network Configuration File: C:\app\Admin\product\12.2.0\dbhome_1\network\ad

利用360免费wifi搭建局域网让他人访问Oracle数据库

步骤很简答有 第一部:安装完360免费,点击运行 第二部:关闭本地计算机的防火墙(找了半天问题所在后来才发现防火墙没关..关于防火墙的作用以后地看看 还有子网掩码) 第三部:就是让他人计算机通过PSQL连接你的数据库了(要是不想配置服务名的话把服务名改写为ip地址/数据库名) ip地址可以通过查看ipconfig得到 或者查看本地连接 利用360免费wifi搭建局域网让他人访问Oracle数据库,布布扣,bubuko.com

【Oracle】PHP通过PDO访问oracle数据库

文章目录 虽然LAMP中PHP和MySQL是标准配对,但是公司的项目是MySQL和Oracle分别作为运行库和详单库的,所以PHP连接oracle数据库也是必须要实现的.本篇文章就介绍下如果通过PDO连接到oracle数据库. 同样先说明下我使用到的环境: RedHat(CentOS)6.7 PHP5.6 Oracle11g php5.6的搭建可以参照这里:Oracle在linux环境下的安装可以参考这里 当然,你也可以不安装整个oracle,而只安装instant client来实现:如果是i

.net中使用ODP.net访问Oracle数据库(无客户端部署方法)

.net中使用ODP.net访问Oracle数据库(无客户端部署方法) 分类: c# database2012-01-05 15:34 6330人阅读 评论(1) 收藏 举报 oracle数据库.netcomponentsdll ODP.net是Oracle提供的数据库访问类库,其功能和效率上都有所保证,它还有一个非常方便特性:在客户端上,可以不用安装Oracle客户端,直接拷贝即可使用. 以下内容转载自:http://blog.ywxyn.com/index.php/archives/326

运行于64操作系统上的C#客户端通过WCF访问Oracle数据库不兼容问题

运行平台: Windows 7  64位操作系统 运行环境: IIS 7 编程语言:C# 数据库: 32位的Oracle 10g 运行原因:64位操作系统C#客户端程序通过WCF访问ORACLE数据库 结果产生异常:System.InvalidOperationException: 未在本地计算机上注册“MSDAORA”提供程序 客户端程序在本地运行能够正常访问Oracle数据库数据, 但通过WCF连接不上Oracle数据库, 一开始以为是"MSDAORA"驱动没装上,通过检查,MSD

Spring+MyBatis双数据库配置

Spring+MyBatis双数据库配置 近期项目中遇到要调用其它数据库的情况.本来仅仅使用一个MySQL数据库.但随着项目内容越来越多,逻辑越来越复杂. 原来一个数据库已经不够用了,须要分库分表.所以决定扩充数据库,正好Spring能够灵活的扩充数据库.以下简单写一篇博文,记录下多数据库配置的过程. 1.项目结构例如以下图: 当中mkhl和ulab分别相应两个数据库模块.同一时候也相应两个不同的功能模块. 2.整个Maven项目的配置文件:pom.xml <project xmlns="

PLSQL Develope连接oracle数据库配置

首先我们在讲PLSQL Develope连接oracle数据库配置之前,先讲下如果不用PLSQL Develope连接oracle数据库,那该怎么办,那就是在本机安装oracle数据库,不过这个对于配置渣的笔记本来说是个挑战,而且界面长时间不操作就会卡死,只能强制关闭,用起来非常不方便,如果笔记本配置高,且不想费力用PLSQL,那可以考虑直接安装oracle客户端. 下面我们来看看如何用PLSQ连接oracle. 1.自行百度下载plsql客户端,个人比较喜欢从CSDN上下载,你们随意.下载好后