- 浏览: 429462 次
- 性别:
- 来自: 深圳
文章分类
最新评论
-
xiesbao:
找到了,太坑爹了。
Intellij Idea 滚动条跳动的问题 -
hvang1988:
按照你说的例子,主备说的是dbtest1,dbtest2,db ...
阿里开源Mysql分布式中间件:Cobar -
hvang1988:
问个问题:一个数据库的表的全部数据只分布在一个cobar上。多 ...
阿里开源Mysql分布式中间件:Cobar -
SiKing:
多谢,一直被这个问题困扰
Intellij Idea 滚动条跳动的问题 -
guodage003:
多谢 解决了这个蛋疼的问题。。
Intellij Idea 滚动条跳动的问题
引用
很多时候我们都要操作数据库,高效数据库操作的第一步就是在数据库连接上面,要体现高效,数据库连接池就不可少的了。以下是我工程使用的oracle9i以上版本的数据库连接池。使用的oracle连接jar包在附件中,SlcxLogger.java类在我之前的博客《log4j介绍、配置与使用》中。
import java.io.FileInputStream; import java.sql.Connection; import java.sql.ResultSet; import java.sql.SQLException; import java.sql.Statement; import java.util.Properties; import org.apache.log4j.Logger; import com.slcx.log.SlcxLogger; import oracle.jdbc.pool.OracleConnectionCacheManager; import oracle.jdbc.pool.OracleDataSource; /** * Oracle数据库链接池。 * * @作者 华龙 * * @日期 2010-01-05 */ public class OraConnPool { //是否初始化 private static boolean initStatus = false; //连接数据源 private static OracleDataSource orads = null; //连接池日志 private static Logger logger=SlcxLogger.getLogger(OraConnPool.class); public synchronized static Connection getConnection() { // 加载默认的配置,配置文件跟类文件在同意一个包 return getConnection(null); // 加载自定义的配置 // return getConnection("./config/connpool.properties"); } public static Connection getConnection(String properties) { if (initStatus == false) { initial(properties); } Connection conn = null; if (orads != null) { try { conn = orads.getConnection(); } catch (SQLException e) { logger.error("获取一个数据库连接异常",e); } } while (conn == null) { try { Thread.sleep(1000*10); } catch (InterruptedException e) { logger.error("连接池线程休眠异常",e); } initial(properties); try { conn = orads.getConnection(); } catch (SQLException e) { logger.error("获取一个数据库连接异常",e); } } // try { // OracleConnectionCacheManager occm = OracleConnectionCacheManager // .getConnectionCacheManagerInstance(); // logger.debug("得到 slcx 缓存中激活的连接:" // + occm.getNumberOfActiveConnections("slcx") + " 可用的链接:" // + occm.getNumberOfAvailableConnections("slcx") + " 线程的编号:" // + Thread.currentThread().getId()); // } catch (Exception e) { // logger.error("输出连接池信息错误", e); // } return conn; } /** * 初始化数据库连接池数据源 */ public static void initial(String properties) { //关闭ORA数据库链接数据源 if (orads != null) { try { orads.close(); } catch (Exception e) { logger.info("关闭数据源异常",e); } orads = null; } try { Properties props = new Properties(); if(properties!=null){ //加载默认数据连接池配置文件。 props.load(new FileInputStream(properties)); } else{ //加载自定义数据连接池配置文件。 props.load(OraConnPool.class.getResourceAsStream("connpool.properties")); } //获取数据库连接池:链接URL,账号,密码 String url = props.getProperty("url"); String username = props.getProperty("username"); String password = props.getProperty("password"); orads = new OracleDataSource(); //设置数据库连接池:链接URL,账号,密码 orads.setURL(url); orads.setUser(username); orads.setPassword(password); //设置连接缓存是否可用,这里设置true orads.setConnectionCachingEnabled(true); //设置其他连接缓存配置 orads.setConnectionCacheProperties(props); //为连接池的高速缓存取个名字 orads.setConnectionCacheName("slcx"); initStatus = true; } catch (Exception e) { initStatus = false; logger.error("初始ORACLE数据源异常",e); } } /** * 关闭各种有关数据库操作对象 * @param rs 结果集对象 * @param stmt SQL处理对象 * @param conn 数据连接对象 */ public static void closeAll(ResultSet rs,Statement stmt,Connection conn){ try { if(rs!=null){ rs.close(); rs=null; } } catch (Exception e) { logger.error("关闭查询结果对象异常",e); } try { if(stmt!=null){ stmt.close(); stmt=null; } } catch (Exception e) { logger.error("关闭处理SQL语句对象异常",e); } try { if(conn!=null){ conn.close(); conn=null; } } catch (Exception e) { logger.error("关闭数据库连接异常",e); } } public static void main(String[] args) { Connection conn = getConnection(); long start = System.currentTimeMillis(); for (int i = 0; i < 100000; i++) { conn = getConnection(); try { conn.close(); } catch (SQLException e) { e.printStackTrace(); } } long end = System.currentTimeMillis(); System.out.println((end - start)); } } // 配置文件名“connpool.properties”,具体内容如下: #数据库链接URL url=dbc:oracle:thin:@192.168.0.8:1521:slcx #数据库链接用户名和密码 username=用户名 password=密码 #url=dbc:oracle:thin:@10.0.0.14:1521:fetch #username=用户名 #password=密码 #初始连接数大小 InitialLimit=2 #最小连接数 MinLimit=2 #最大链接数 MaxLimit=20 #不活动的超时时间 InactivityTimeout=1800 #被抛弃的链接超时 AbandonedConnectionTimeout=900 #属性检查相隔时间 PropertyCheckInterval=60 #链接等待超时时间 ConnectionWaitTimeout=100 #高速缓存的名称 ConnectionCacheName=slcx
- ojdbc5.jar (1.8 MB)
- 下载次数: 9
发表评论
-
深入理解Java内存模型
2014-11-08 16:54 1025深入理解Java内存模型(一)——基础深入理 ... -
阿里开源Mysql分布式中间件:Cobar
2014-08-12 11:54 64462这几天研究 ... -
今日开源介绍:Google Guava、Google Guice、Joda-Time
2014-08-11 11:55 18253一、Guava 是一个 Google 的基于java1.6的 ... -
Jackson 动态过滤属性
2014-06-20 16:15 3038在把java对象转换为json时,有时需要依据需求动态过滤掉 ... -
自实现CAS原理JAVA版,模拟下单库存扣减
2014-04-02 17:47 7073在做电商系统时,库存 ... -
JAVA逻辑判断工具类
2013-09-06 21:33 1758在开发过程中,经常需要对“对象”、Map、Collecti ... -
Servlet2.4 监听器
2011-06-17 17:48 1586Servlet API提供了基本的应用程序事件监听器接口。编程 ... -
JSP页面编译成Servlet类文件过程中所涉及到的编码问题
2011-02-23 12:16 2906当请求一个JSP页面时,一般的都需要经历下面几个阶段: 1 ... -
Java中的字符集编码入门(六)Java中的增补字符
2011-02-23 12:11 1480Java号称对Unicode提 ... -
Java中的字符集编码入门(五)Java代码中的字符编码转换
2011-02-23 12:08 1157如果你是JVM的设计者,让你来决定JVM中所有字符的表 ... -
Java中的字符集编码入门(四)网页文件的编码
2011-02-23 12:03 1100接着上节的思路说,一个网页要想在浏览器中能够正确显示,需要在三 ... -
Java中的字符集编码入门(三)GB2312,GBK与中文网页
2011-02-23 12:02 1258GB2312是对中国的开发人员来说很重要的一个词汇,它的来龙去 ... -
Java中的字符集编码入门(二)编码字符集与字符集编码的区别
2011-02-23 12:01 933需要再一次强调的是, ... -
Java中的字符集编码入门(一)Unicode与UCS的历史恩怨
2011-02-23 11:59 1061ASCII及相关标准 ... -
方便管理工程中的SQL语句
2010-10-13 17:13 1849引用 之前在项目开发时候,经理要求把所有的SQL语句挑出 ... -
常见通信名称缩写解释
2010-09-03 16:05 2348引用 在看新闻时,购买手机时,经常听到关于通信方面的一 ... -
飞信维脉系统(定时短息发送系统)
2010-08-01 21:27 1600引用 因为工作原因 ... -
HTTP协议介绍
2010-07-28 09:45 822引用 HTTP(HyperTextTransferPro ... -
Java调用存储过程举例
2010-07-23 18:22 917Java调用oracle存储过程的示例总结如下。 ... -
不区分大小写查找字符串(二)
2010-03-25 20:56 2310引用 上次发表了自己编写不区分大小查找的方法,这次使用了 ...
相关推荐
本示例是关于如何使用C3P0连接池来连接Oracle数据库的一个简单实例。C3P0是一个开源的JDBC连接池,它实现了数据源和JNDI绑定,支持JDBC3规范和JDBC2的标准扩展。 首先,我们需要理解什么是数据库连接池。数据库连接...
### JAVA 使用数据库连接池连接Oracle数据库全代码解析 #### 一、概述 本文将详细介绍如何在Java项目中使用Apache DBCP(Database Connection Pool)来连接Oracle数据库,并提供完整的示例代码。通过这种方式,我们...
本文将详细讲解如何在Tomcat 6.0中配置Oracle数据库连接池。 首先,我们要明白连接池的基本原理。数据库连接池管理数据库连接,避免每次需要连接时都创建新的连接,而是复用已存在的连接,这样可以显著减少数据库...
### WebLogic与Oracle数据库连接池配置详解 #### 一、WebLogic Server 7.0 + Oracle JDBC Pool/DataSource配置步骤 在进行WebLogic Server 7.0与Oracle数据库的连接池配置时,需要确保以下几个方面的正确设置: #...
本篇文章将深入探讨如何在Tomcat 6.0应用服务器上配置Oracle数据库连接池,以及如何使用第三方DBCP(Database Connection Pool)库来实现这一目标。DBCP是一个开源的Java连接池实现,它为应用程序提供了一种有效管理...
这是用连接池技术管理连接oracle数据库的工具类代码,如果想连接MySQL,直接修改配置文件即可。
JDBC连接池 用JAVA写的连接数据库的代码 JDBC连接池 用JAVA写的连接数据库的代码
在IT领域,数据库连接池是优化应用程序性能的关键组件,它能有效地管理数据库连接,避免频繁地创建和销毁连接,从而提高系统的效率。本教程将详细解释如何在Tomcat服务器上配置Oracle 10g数据库的连接池数据源。 ...
Spring Boot 连接 Oracle 数据库 JDBC 配置步骤 在本文中,我们将详细介绍如何使用 Spring Boot 连接 Oracle 数据库,配置 JDBC 驱动程序,并实现数据库的基本操作。 Step 1: 添加依赖项 在 Spring Boot 项目中,...
在描述中提到的“delphi10.01完整代码”,意味着这是一个使用Delphi 10.01版本编写的程序示例,它展示了如何在没有第三方组件的情况下连接到Oracle数据库。"oci.dll、oraocci11.dll、oraociei11.dll、orasql11.dll...
在Oracle数据库中,可以通过以下命令调整`processes`参数: ```sql ALTER SYSTEM SET PROCESSES = value SCOPE = spfile; ``` 其中`value`表示新的最大连接数,`SCOPE = spfile`表示修改的参数将保存在初始化参数...
在GIS(地理信息系统)领域,GeoServer是一款广泛使用的开源服务器软件,它...记住,安全性和性能优化也是在实际操作中需要考虑的重要因素,例如定期更新JDBC驱动,合理配置数据库连接池,以及根据需要调整查询性能。
数据库连接池在Oracle数据库中的实现是一项关键的技术优化策略,它主要解决了基于JDBC(Java Database Connectivity)的应用程序在处理数据库连接时的效率问题。在传统的数据库应用中,每次请求都需要建立一个新的...
数据库连接池在Oracle数据库中的实现是一项关键的技术优化,旨在提高应用程序与数据库之间的交互效率和资源利用率。数据库连接池技术允许程序复用已建立的数据库连接,而不是每次操作都创建新的连接,这显著降低了...
6. 连接池管理:如果涉及多线程或高并发环境,还会讲解如何实现连接池,以提高性能和资源利用率。 7. 安全性:讲解如何确保数据库操作的安全性,包括用户名、密码的加密传输,以及SQL注入的防范措施。 8. 性能优化...
本话题将深入探讨如何在C++环境中利用连接池技术实现对Oracle数据库的高速连接与访问。 一、Oracle数据库基础 Oracle数据库提供了一套完整的数据管理解决方案,包括事务处理、数据仓库、网络数据库、安全性等。它的...
自定义数据库连接池还可以考虑支持多种数据库类型,例如SQL Server、MySQL、Oracle等,通过泛型或接口实现对不同数据库的适配。 理解并掌握C#高效数据库连接池的实现,对于开发高性能的数据库应用至关重要。通过...
要使用数据库连接池连接到Oracle数据库,首先需要在项目中添加Oracle JDBC驱动的依赖。通常,这可以通过Maven或Gradle等构建工具完成。例如,在Maven的pom.xml文件中,可以添加以下依赖: ```xml <groupId>...
python-oracledb的源码和使用示例代码, python-oracledb 1.0,适用于Python versions 3.6 through 3.10. Oracle Database; This directory contains samples for python-oracledb. 1. The schemas and SQL ...