`

Java传统方式连接Oracle数据库

阅读更多

数据库连接类:ConnOracl

 

package com.zgc.db.oracle;

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

import org.apache.log4j.Logger;


/**
 * 传统方式连接Oracle数据库
 * 
 * 性能、可靠性、稳定性会随着用户访问量的增加逐渐下降
 * 根本问题与Connection对象的创建有关
 * 
 * @author Zhanggc
 * 日期:2011年3月9日 09:20:17
 */
public class ConnOral {
	
	/**
	 * 定义变量
	 */
	private static Connection conn;
	private static Logger log = Logger.getLogger(ConnOral.class);

	/**
	 * 数据库驱动
	 */
	private static final String driver = "oracle.jdbc.driver.OracleDriver";
	/**
	 * 数据库连接串
	 */
	private static final String url = "jdbc:oracle:thin:@127.0.0.1:1521:orcl";
	/**
	 * 用户名
	 */
	private static final String username = "jnzb";
	/**
	 * 密码
	 */
	private static final String password = "jnzb";
	/**
	 * 驱动类实例
	 */
	private static Object driverInstance = null;
	
	/**
	 * 连接数据库
	 * @return
	 * @throws SQLException
	 */
	public static Connection getConn() throws SQLException{
		if (driverInstance == null){
			try {
				driverInstance = Class.forName(driver);
				log.info("Oracle数据库驱动实例不存在,成功创建了一个!");
			} catch (Exception e) {
				e.printStackTrace();
			}
		}
		conn = DriverManager.getConnection(url, username, password);
		return conn;
	}
	
	/**
	 * 关闭数据库连接
	 */
	public static void close(Connection connection,PreparedStatement pstmt,ResultSet rs){
		
		try {
			if (rs != null){
				rs.close();
			}
		} catch (Exception e) {
			log.error("关闭ResultSet对象时失败,原因是"+e.getMessage());
		}
		
		try {
			if (pstmt != null){
				pstmt.close();
			}
		} catch (Exception e) {
			log.error("关闭PreparedStatement对象时失败,原因是"+e.getMessage());
		}
		
		try {
			if (connection != null){
				connection.close();
			}
		} catch (Exception e) {
			log.error("关闭Connection对象时失败,原因是"+e.getMessage());
		}
	}
}

 在上面代码中,数据库连接串,即:

 

private static final String url = "jdbc:oracle:thin:@127.0.0.1:1521:orcl";

 

 中的orcl是sid,千万不能出错,它可通过以下代码来得到:

 

select instance_name from v$instance;或
select name from v$database;

 另外,这种连接方式需要jar包(作者以提供),下载后拷到工程的lib文件夹中即可使用。如果还是不能,右键单击ojdbc14.jar,重新Build Path。

  • ojdbc14.jar (1.5 MB)
  • 描述: Oracle驱动jar包,连接数据库必备,可下载后拷到lib文件夹内
  • 下载次数: 10
分享到:
评论

相关推荐

    Oracle数据库管理员技术指南

    1.6.1 利用 Oracle 安装程序创建数据库 1.6.2 使用安装程序创建数据库的注意 事项 1.6.3 怎样建立自己的定制数据库创建 脚本 1.6.4 如何从已有数据库克隆数据库 1.6.5 怎样利用 Database Configuration ...

    oracle学习文档 笔记 全面 深刻 详细 通俗易懂 doc word格式 清晰 连接字符串

    说明:用于连接到oracle数据库,也可实现用户的切换 用法:conn 用户名/密码 [as sysdba/sysoper] 注意:当用特权用户连接时,必须带上sysdba或sysoper 例子: 3. 断开连接(disc) 说明:断开与当前数据库的连接 ...

    基于JAVA JSP企业电子投票系统的毕业设计,BEA System、Sybase、Oracle以及Fujitsu等等

    正是认识到J2EE平台作为一种可扩展的、全功能的平台,可以将关键的企业应用扩展到任何Web浏览器上并可适合多种不同的Internet数据流、可连接到几乎任何一种传统数据库和解决方案、使企业经理根据多家企业所提供的...

    仓库物品管理系统设计方案书.doc

    摘要:ORACLE数据库系统是美国ORACLE公司(甲骨文)提供的以分布式数据库为核心的 一组软件产品,是目前最流行的客户/服务器(CLIENT/SERVER)或B/S体系结构的数据库之 一。比如SilverStream就是基于数据库的一种...

    java面试题

    52.7. Hibernate实现数据库的连接不同方式: 28 52.8. 有几种开源的数据库连接池: 29 53. 描述一下JVM加载class文件的原理机制? 30 54. socket编程 30 54.1. 什么是TCP/IP、UDP? 30 54.2. Socket在哪里呢? 31 ...

    zas:使用其他sql语言(例如,ORACLE的sql)访问MYSQL数据库

    运行稳定结构体 连接字符串处理器:处理数据库连接字符串,包括Oracle TNS和传统DSN格式协议管理( MYSQLC库)提供: MYSQL Client/Server Protocol 完全支持prepare和query模式与libmysqlclient API兼容性SQL语法...

    Java面试宝典-经典

    24. 写一个用jdbc连接并访问oracle数据的程序代码 111 25、Class.forName的作用?为什么要用? 111 26、大数据量下的分页解决方法。 111 27、用 JDBC 查询学生成绩单, 把主要代码写出来(考试概率极大). 112 28、这段...

    Java面试宝典2010版

    24. 写一个用jdbc连接并访问oracle数据的程序代码 111 25、Class.forName的作用?为什么要用? 111 26、大数据量下的分页解决方法。 111 27、用 JDBC 查询学生成绩单, 把主要代码写出来(考试概率极大). 112 28、这段...

    java面试题大全(2012版)

    24. 写一个用jdbc连接并访问oracle数据的程序代码 111 25、Class.forName的作用?为什么要用? 111 26、大数据量下的分页解决方法。 111 27、用 JDBC 查询学生成绩单, 把主要代码写出来(考试概率极大). 112 28、这段...

    最新Java面试宝典pdf版

    24. 写一个用jdbc连接并访问oracle数据的程序代码 111 25、Class.forName的作用?为什么要用? 111 26、大数据量下的分页解决方法。 111 27、用 JDBC 查询学生成绩单, 把主要代码写出来(考试概率极大). 112 28、这段...

    java基础题 很全面

    Java基础 6 1. 面向对象的特征有哪些方面 6 2. String是最基本的数据类型吗? 7 3. int 和 Integer 有什么区别 7...15. 金额转换,阿拉伯数字的金额转换成中国传统的形式如:(¥1011)->(一千零一拾一元整)输出。 40

    Java面试笔试资料大全

    24. 写一个用jdbc连接并访问oracle数据的程序代码 111 25、Class.forName的作用?为什么要用? 111 26、大数据量下的分页解决方法。 111 27、用 JDBC 查询学生成绩单, 把主要代码写出来(考试概率极大). 112 28、这段...

    java面试宝典2012

    24. 写一个用jdbc连接并访问oracle数据的程序代码 121 25、Class.forName的作用?为什么要用? 121 26、大数据量下的分页解决方法。 121 27、用 JDBC 查询学生成绩单, 把主要代码写出来(考试概率极大). 122 28、这段...

    JAVA面试宝典2010

    24. 写一个用jdbc连接并访问oracle数据的程序代码 111 25、Class.forName的作用?为什么要用? 111 26、大数据量下的分页解决方法。 111 27、用 JDBC 查询学生成绩单, 把主要代码写出来(考试概率极大). 112 28、这段...

    Java面试宝典2012新版

    24. 写一个用jdbc连接并访问oracle数据的程序代码 111 25、Class.forName的作用?为什么要用? 111 26、大数据量下的分页解决方法。 111 27、用 JDBC 查询学生成绩单, 把主要代码写出来(考试概率极大). 112 28、这段...

Global site tag (gtag.js) - Google Analytics