`

利用属性文件连接oracle数据库

    博客分类:
  • java
阅读更多

本文将介绍如何利用属性文件来获取数据库的相应信息,从而达到查询数据库的目的,本题目以oracle为例。

1、首先创建一个属性文件如下(此属性文件创建在项目中的src下的com.properties包下,名为OracleDriver.properties):

dbdriver=oracle.jdbc.driver.OracleDriver
dburl=jdbc:oracle:thin:@192.168.1.30:1521:orcl
dbuser=scott
dbpasswd=tiger

 2、创建读取属性文件的类如下:

package com.test;

import java.io.IOException;
import java.io.InputStream;
import java.util.Properties;

public class Env extends Properties {
	private static Env instance ;
	//获得属性文件实例
	public static Env getInstance(){
		if(instance!=null){
			return instance ;
		}else{
			makeInstance() ;
			return instance ;
		}
	}
	//此处添加synchronized关键的目的地是为了实现线程同步问题
	public static synchronized void makeInstance(){
		instance = new Env() ;
	}
	//因为用到单例模式,所以此构造方法为私有的
	private Env(){
		InputStream is = this.getClass().getResourceAsStream("/com/properties/OracleDriver.properties") ;
		try {
			this.load(is) ;
		} catch (IOException e) {
			// TODO Auto-generated catch block
			System.out.println("没有找到配置文件") ;
			e.printStackTrace();
		}
	}
}

 3、创建连接数据库类如下:

package com.test;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;

public class ConnectPropertiesManager {
	//获得数据库连接
	public static synchronized Connection getConn(){
		Connection conn = null ;
		//依次从属性文件中获得数据库的相关信息
		String dbdriver = Env.getInstance().getProperty("dbdriver") ;
		String dburl = Env.getInstance().getProperty("dburl") ;
		String dbuser = Env.getInstance().getProperty("dbuser") ;
		String dbpasswd = Env.getInstance().getProperty("dbpasswd") ;
		try {
			//注册数据库驱动并连接数据库
			Class.forName(dbdriver) ;
			conn = DriverManager.getConnection(dburl,dbuser,dbpasswd) ;
		} catch (ClassNotFoundException e) {
			e.printStackTrace();
		} catch (SQLException e){
			e.printStackTrace() ;
		}
		return conn ;
	}
	//获得要执行的SQL语句
	public static synchronized PreparedStatement getPrep(Connection conn,String sql){
		PreparedStatement pstmt = null ;
		try {
			pstmt = conn.prepareStatement(sql) ;
		} catch (SQLException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		return pstmt ;
	} 
	//关闭所有用到的数据库资源
	public static void closeAll(Connection conn,Statement stmt,ResultSet rs){
		if(conn!=null){
			try {
				conn.close() ;
				conn = null ;
			} catch (SQLException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			}
		}
		if(stmt!=null){
			try {
				stmt.close() ;
				stmt = null ;
			} catch (SQLException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			}
		}
		if(rs!=null){
			try {
				rs.close() ;
				rs = null ;
			} catch (SQLException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			}
		}
	}
	
}

 5、创建测试类如下:

package com.test;

import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;


public class Test {
	
	Connection conn = null ;
	PreparedStatement pstmt = null ;
	ResultSet rs = null ;
	
	public static void main(String[] args) {
		new Test().showData() ;
	}
	
	public void showData(){
		conn = ConnectPropertiesManager.getConn() ;
		String sql = "SELECT empno,ename,sal,job FROM emp" ;
		pstmt = ConnectPropertiesManager.getPrep(conn, sql) ;
		try {
			rs = pstmt.executeQuery() ;
			while(rs.next()){
				//输出查询到的所有信息
				System.out.print(rs.getString(1)+" ");
				System.out.print(rs.getString(2)+" ");
				System.out.print(rs.getString(3)+" ");
				System.out.println(rs.getString(4));
			}
		} catch (SQLException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		} finally{
			//在此写关闭语句的意思是:不管上面的SQL语句是否执行成功,都要关闭资源
			ConnectPropertiesManager.closeAll(conn, pstmt, rs) ;
		}
		System.out.println("操作成功!");
	}
	
}

 6、输出结果如下:

7369 SMITH 800 CLERK
7499 ALLEN 1600 SALESMAN
7521 WARD 1250 SALESMAN
7566 JONES 2975 MANAGER
7654 MARTIN 1250 SALESMAN
7698 BLAKE 2850 MANAGER
7782 CLARK 2450 MANAGER
7788 SCOTT 3000 ANALYST
7839 KING 5000 PRESIDENT
7844 TURNER 1500 SALESMAN
7876 ADAMS 1100 CLERK
7900 JAMES 950 CLERK
7902 FORD 3000 ANALYST
7934 MILLER 1300 CLERK
操作成功!

 

1
0
分享到:
评论

相关推荐

    易语言连接Oracle数据库

    本文将详细介绍如何使用易语言连接Oracle数据库,并探讨相关组件的使用。 首先,连接Oracle数据库的基础是确保本机已经安装了Oracle客户端。Oracle客户端包含了连接Oracle服务器所需的所有组件,包括网络配置、...

    jsp连接Oracle数据库实现增删改查

    "jsp连接Oracle数据库实现增删改查"这个项目旨在教你如何利用JSP(JavaServer Pages)技术来构建一个完整的用户管理系统,包括登录、注册以及对数据表(如学生表)的CRUD(Create, Read, Update, Delete)操作。...

    jsp连接oracle数据库代码

    ### JSP连接Oracle数据库知识点详解 #### 一、前言 在Web开发中,Java Server Pages (JSP) 是一种广泛使用的服务器端脚本技术,它允许开发者将动态内容嵌入到HTML页面中。JSP可以与各种类型的数据库进行交互,以...

    利用GDAL2.1.2库 把shp文件导入 oracle数据库中 例子

    本文将深入探讨如何利用GDAL 2.1.2版本将Shapefile(SHP)文件导入Oracle数据库,以及这一过程中的关键知识点。 首先,GDAL是一个C++库,它提供了一系列API来读取、写入和处理地理空间数据。GDAL 2.1.2版本包含了对...

    利用Java程序实现Oracle数据库中大对象的存取.pdf

    "利用Java程序实现Oracle数据库中大对象的存取" ...使用Java程序实现Oracle数据库中大对象的存取可以通过jdbc驱动程序连接Oracle数据库,并使用PreparedStatement对象执行SQL语句,实现对大对象的存储和读取。

    一段无需安装Oracle客户端即可访问Oracle数据库的delphi控件

    标题中的“一段无需安装Oracle客户端即可访问Oracle数据库的Delphi控件”指的是在Delphi编程环境中,使用特定的第三方控件或组件库,可以实现与Oracle数据库的连接和交互,而不需要在用户机器上安装完整的Oracle...

    JDBC连接oracle数据库.pdf

    ### JDBC连接Oracle数据库知识点 #### 一、JDBC概述 JDBC(Java Database Connectivity)是一种用于执行SQL语句的Java API,可以为多种关系数据库提供统一访问,它由一组用Java语言编写的类和接口组成。JDBC提供了...

    linux下远程定时备份oracle数据库

    在Linux环境下,远程定时备份Oracle数据库是一项至关重要的任务,它能确保数据的安全性和业务的连续性。Oracle数据库作为企业级的数据库管理系统,其备份与恢复策略必须严谨且可靠。以下将详细阐述如何在没有安装...

    SSH框架实现增删改查,Oracle数据库

    我们需要配置Hibernate的实体类、映射文件(.hbm.xml)以及Hibernate的主配置文件(hibernate.cfg.xml),以连接Oracle数据库并定义对象-关系映射。 4. **Oracle数据库**:Oracle是一种功能强大的关系型数据库管理...

    从vc连接到oracle数据库从vc连接到oracle数据库

    ODBC驱动程序允许应用程序通过ODBC接口与各种数据库进行通信,而Oracle Instant Client则是一个轻量级的客户端组件,提供了连接Oracle数据库所需的基本功能。 1. **安装和配置Oracle客户端** 在开始编程之前,确保...

    c# 链接oracle数据库(不安装客户端)

    Oracle Instant Client是一个轻量级的解决方案,它提供了连接Oracle数据库所需的必要组件,而无需安装整个客户端套件。以下是关于使用C#与Oracle Instant Client链接数据库的详细步骤和知识点: 1. **Oracle ...

    dom4j解析xml,连接oracle数据库

    在本实例中,我们将深入探讨如何使用DOM4J解析XML,并利用这些数据连接Oracle数据库进行数据操作。 首先,让我们了解DOM4J的基本用法。DOM4J的主要类包括`Document`、`Element`、`Attribute`和`Namespace`。`...

    Delphi下ADO技术连接Oracle数据库的一种方法介绍.pdf

    特别是使用ADO(ActiveX Data Objects)技术连接Oracle数据库,更是Delphi数据库应用开发中的一个重要议题。ADO技术作为微软公司提供的高层接口,被设计为访问各种数据库格式,其已经成为访问数据库的新标准。本文将...

    C#连接oracle数据库及根据表中数据生成xml

    在IT行业中,C#是一种广泛使用的面向对象的...以上内容详尽介绍了在C#环境中如何连接Oracle数据库,以及如何根据表中数据生成XML文件的核心技术点和步骤。这在数据迁移、数据备份或数据交换等场景中具有实际应用价值。

    delphi连接oracle(免装oracle客户端)测试

    本篇文章将详细介绍如何在Delphi中实现连接Oracle数据库,无需安装Oracle客户端。 首先,为了在Delphi中实现无客户端连接Oracle,我们需要依赖第三方组件或库。ODAC(Oracle Data Access Components)就是这样一个...

    oracle数据库体系结构之一【连接配置】

    理解这些连接配置方式对于优化Oracle数据库的性能和资源利用至关重要,尤其是在处理大量并发用户时。选择合适的连接模式需要考虑系统负载、资源限制和性能要求等因素。在实际应用中,可能需要根据具体情况调整连接...

    instantclient_11_2 连接oracle数据

    5. **ocijdbc11.dll**:这是Oracle JDBC驱动的一部分,用于Java应用程序通过JDBC接口连接Oracle数据库。 6. **genezi.exe、uidrvci.exe**:这两个是Oracle Instant Client的辅助工具。genezi.exe用于生成本地语言...

    ODBC怎么连接ORACLE数据库

    ### ODBC连接Oracle数据库详解 #### 一、ODBC简介 开放数据库连接(ODBC)是一种标准的应用程序接口(API),用于与各种数据库管理系统(DBMS)进行交互。ODBC的作用在于提供一种统一的方式来访问不同的数据库系统...

    JDBC实用技术(连接Oracle数据库).rar

    **JDBC实用技术:连接Oracle数据库** 在Java编程中,JDBC(Java Database Connectivity)是连接Java应用程序与数据库的关键技术。它提供了一组接口和类,使得开发人员能够以标准化的方式来访问各种数据库系统,包括...

    C#中oracle连接数据库的封装类

    在C#编程环境中,Oracle数据库的连接和操作通常需要通过ADO.NET或者其他第三方库来实现。在本场景中,我们关注的是一个名为"C#中oracle连接数据库的封装类"的主题,这个主题涉及到创建一个名为`DbHelperOra.cs`的类...

Global site tag (gtag.js) - Google Analytics