访问 Oracle 数据库的实例描述

如果你要使用本文中所给出的相关示例来访问 Oracle 数据库,那么你的开发计算机上就需要安装下面的软件组件(请参见“下载”portlet 以获得链接):即支持 JDK 1.6 的 Oracle JDBC 瘦驱动程序 。

Oracle 通用连接池库

Oracle JDBC 瘦驱动程序是一个 Type IV JDBC 驱动程序,这意味着它独立于平台,并且在与 Oracle 数据库交互的客户端上不需要任何额外的 Oracle 软件。因此,您可以从 JDBC 驱动程序下载页面下载包含相应瘦驱动程序版本类别的 JAR 文件,然后将该驱动程序安装在您的计算机上,无需安装/升级任何其他的 Oracle 软件。

要安装该驱动程序,您只需将其 JAR 文件复制到本地文件系统,然后将这些 JAR 的路径包括在 CLASSPATH 环境变量中。例如,您可能包括以下路径:

ORACLE_HOME/jdbc/lib/ojdbc6.jar ORACLE_HOME/jlib/orai18n.jar
如果您的计算机上已经安装了 Oracle 数据库,则瘦驱动程序也已经随 Oracle 数据库安装到您的计算机上。

但是,由于瘦驱动程序独立于任何其他 Oracle 软件,因此您可以通过使用相应的 JAR 文件(可以在 JDBC 驱动程序下载页面找到)轻松升级到该驱动程序的***版本。

UCP 是从 11.1.0.7 版开始引入 Oracle 数据库 11g 的一个新特性。该特性从 Oracle 应用服务器 11g 第 1 版开始就包含在 Oracle 应用服务器中。如果您使用的是未装载 UCP 的 JAR 文件(名为 ucp.jar)的旧版本软件,或者您希望升级到***的 UCP 版本,可以从 Oracle 数据库 UCP 下载页面获取 ucp.jar。

该程序包包含 UCP 的类,以便于将其包括在类路径中来启用该特性。所包括的路径可能如下所示:

ORACLE_HOME/ucp/lib/ucp.jar

使用 UCP 缓存 JDBC 连接

如果您要开发数据库密集型应用程序,可能会因使用连接池获益。因为这样您能够重用连接,而不是在每次请求连接时都重新创建一个新连接。连接池节约了创建新数据库连接所需的资源,并提高了应用程序的性能,因为创建新连接始终是一个性能密集型操作。

Oracle Universal Connection Pool for JDBC 表示一个用于缓存 JDBC 连接的全功能实现。UCP 是一个非常有用的特性,它将使您可以重用连接对象,从而可以提高获取连接过程的速度并节约打开新数据库连接所需的资源。

假设您希望创建一个 UCP JDBC 连接池来重用到 HR/HR Oracle 数据库示例模式的已建立连接。以下程序是一个 UCP JDBC 连接池实际运行的简单示例,将向您展示如何完成此操作。您将首先创建一个支持池的数据源实例,然后设置连接和池的属性。完成后,您将从池中借用一个连接,然后使用该连接与数据库交互。***,您将关闭该连接,将其返回到池。

  1. import java.sql.*; import oracle.ucp.jdbc.PoolDataSourceFactory; 
    import oracle.ucp.jdbc.PoolDataSource; 
    public class UcpConnection { public static void main(String args[]) 
    throws SQLException 
    { try { //Creating a pool-enabled data source PoolDataSource 
    pds 
    PoolDataSourceFactory.getPoolDataSource(); 
    //Setting connection properties of the data source pds.
    setConnectionFactoryClassName("oracle.jdbc.pool.OracleDataSource"); 
    pds.setURL("jdbc:oracle:thin:@//localhost:1521/XE"); pds.setUser("hr"); 
    pds.setPassword("hr"); //Setting pool properties pds.setInitialPoolSize(5); 
    pds.setMinPoolSize(5); pds.setMaxPoolSize(10); 
    //Borrowing a connection fro th oo Connection 
    con = pds.getConnection();  
  2. ount(); System.out.println("\nAvailable connections: " + avlConnCount); 
    int 
    brwConnCount = pds.getBorrowedConnectionsCount(); 
    System.out.println("\nBorrowed connections: " + brwConnCount); 
    //Working with the connection Statement 
    stmt = conn.createStatement(); 
    ResultSet 
    rs = stmt.executeQuery("select user from dual"); 
    while(rs.next()) System.out.println("\nConnected as: "+rs.getString(1)); 
    rs.close(); //Returning the connection to the pool conn.close(); 
    conn=null
    System.out.println("\nConnection returned to the pool"); 
    //Checking the number of available and borrowed connections again 
    avlConnCount = 
    pds.getAvailableConnectionsCount(); 
    System.out.println("\nAvailable connections: " + avlConnCount); 
    brwConnCount = pds.getBorrowedConnectionsCount(); 
    System.out.println("\nBorrowed connections: " + brwConnCount); } 
    catch(SQLException e) { System.out.println("\nAn SQL exception occurred : " + e.getMessage()); } } } 

这里值得注意的是关闭连接时的变化。以上程序的输出阐释了关闭从 UCP JDBC 连接池中借用的连接将使该连接返回到池,以供下一次连接请求使用。

该应用程序的输出应如下所示:

  1. Connection borrowed from the poolAvailable connections: 
    4Borrowed connections: 1Connected as: 
    HRConnection returned to the poolAvailable 
    connections: 5Borrowed connections: 0 

使用 JNDI 借用连接
您还可以提前创建支持池的数据源并将其绑定到 Java 命名和目录接口 (JNDI) 上下文和逻辑名称,而不是像在之前的示例中那样即时创建。将数据源注册到 JNDI 后,可以通过执行 JNDI 查找(指定与数据源绑定的 JNDI 名称)来获取其实例。

假设您要注册一个支持池的数据源以重用到 HR/HR 数据库模式的连接,并将该数据源与 JNDI 树中的逻辑名称 jdbc/HRPool 相关联。为此,必须创建一个表示上述数据源的 PoolDataSource 对象,设置其属性,然后将其注册到一个 JNDI 命名服务。使用以下 Java 程序可以完成此操作:

  1. import oracle.ucp.jdbc.PoolDataSourceFactory; 
    import oracle.ucp.jdbc.PoolDataSource; import javax.naming.*; 
    import java.util.Hashtable; public class JNDIRegister 
    { public static void main(String argv[]) 
    { try { //Creating a pool-enabled data source instance and 
    setting its properties PoolDataSource 
    pds = PoolDataSourceFactory.
    getPoolDataSource(); pds.setConnectionFactoryClassName
    ("oracle.jdbc.pool.OracleDataSource"); pds.setURL
    ("jdbc:oracle:thin:@//localhost:1521/XE"); 
    pds.setUser("hr"); pds.setPassword("hr"); 
    pds.setInitialPoolSize(5); pds.setMinPoolSize(5); 
    pds.setMaxPoolSize(10); //Registering the data source with 
    JNDI Hashtable 
    env = new Hashtable(); 
    env.put(Context.INITIAL_CONTEXT_FACTORY,"
    com.sun.jndi.fscontext.RefFSContextFactory"); 
    Context 
    ctx = new InitialContext(env); 
    ctx.bind("jdbc/HRPool", pds); } catch 
    (Exception e) { System.out.println(e); } } } 

必须先设置 Sun 的文件系统 JNDI 服务提供程序(可在此处下载),然后才能运行此程序。确保将以下 JAR 文件添加到类路径中,

【编辑推荐】

  1. Oracle动态Web开发实例演示
  2. 转移Oracle海量数据到另外的用户流程
  3. Oracle进程中出现带锁状况的解决
  4. Oracle内存结构里Process Memory实际操作步骤
  5. 用Oracle屏蔽英文来提示信息的正确方法

文章来源网络,作者:运维,如若转载,请注明出处:https://shuyeidc.com/wp/287316.html<

(0)
运维的头像运维
上一篇2025-05-15 19:36
下一篇 2025-05-15 19:37

相关推荐

  • 个人主题怎么制作?

    制作个人主题是一个将个人风格、兴趣或专业领域转化为视觉化或结构化内容的过程,无论是用于个人博客、作品集、社交媒体账号还是品牌形象,核心都是围绕“个人特色”展开,以下从定位、内容规划、视觉设计、技术实现四个维度,详细拆解制作个人主题的完整流程,明确主题定位:找到个人特色的核心主题定位是所有工作的起点,需要先回答……

    2025-11-20
    0
  • 社群营销管理关键是什么?

    社群营销的核心在于通过建立有温度、有价值、有归属感的社群,实现用户留存、转化和品牌传播,其管理需贯穿“目标定位-内容运营-用户互动-数据驱动-风险控制”全流程,以下从五个维度展开详细说明:明确社群定位与目标社群管理的首要任务是精准定位,需明确社群的核心价值(如行业交流、产品使用指导、兴趣分享等)、目标用户画像……

    2025-11-20
    0
  • 香港公司网站备案需要什么材料?

    香港公司进行网站备案是一个涉及多部门协调、流程相对严谨的过程,尤其需兼顾中国内地与香港两地的监管要求,由于香港公司注册地与中国内地不同,其网站若主要服务内地用户或使用内地服务器,需根据服务器位置、网站内容性质等,选择对应的备案路径(如工信部ICP备案或公安备案),以下从备案主体资格、流程步骤、材料准备、注意事项……

    2025-11-20
    0
  • 如何企业上云推广

    企业上云已成为数字化转型的核心战略,但推广过程中需结合行业特性、企业痛点与市场需求,构建系统性、多维度的推广体系,以下从市场定位、策略设计、执行落地及效果优化四个维度,详细拆解企业上云推广的实践路径,精准定位:明确目标企业与核心价值企业上云并非“一刀切”的方案,需先锁定目标客户群体,提炼差异化价值主张,客户分层……

    2025-11-20
    0
  • PS设计搜索框的实用技巧有哪些?

    在PS中设计一个美观且功能性的搜索框需要结合创意构思、视觉设计和用户体验考量,以下从设计思路、制作步骤、细节优化及交互预览等方面详细说明,帮助打造符合需求的搜索框,设计前的规划明确使用场景:根据网站或APP的整体风格确定搜索框的调性,例如极简风适合细线条和纯色,科技感适合渐变和发光效果,电商类则可能需要突出搜索……

    2025-11-20
    0

发表回复

您的邮箱地址不会被公开。必填项已用 * 标注