服务热线:13616026886

技术文档 欢迎使用技术文档,我们为你提供从新手到专业开发者的所有资源,你也可以通过它日益精进

位置:首页 > 技术文档 > JAVA > 新手入门 > 基础入门 > 查看文档

j2ee应用开发中与oracle数据库的连接


  在j2ee应用程序开发中,应用程序与数据库连接的建立是我们经常遇到的问题之一。在这里我们主要谈谈在本地应用程序中通过oci方式、thin方式和jdbcodbc桥方式连接oracle数据库,在iplanet application server 6.5和sun java system application server 7中对oracle数据库连接池的配置以及应用中如何从连接池中获得连接。
  
  一、本地通过jdbc获得oracle数据库连接
  
  通过jdbc获得oracle数据库连接,有三种方式:oci方式、thin方式和jdbcodbc桥方式。oci方式依赖于本地的动态链接库,如果在本地安装了oracle数据库客户端可以采用该方式;而thin方式为纯java的数据库连接方式;jdbcodbc桥方式依赖于本地odbc数据库源的配置,这种方式一般不太被采用。
  
  1、oci方式
  
  先在本地安装oracle客户端,安装完之后,在安装的路径中可以找到…/jdbc/lib/classes12.zip文件,我们在环境变量classpath中设置classes12.zip所在的路径。
  
  然后通过以下的数据库连接类,在本地通过oci方式获得oracle数据库连接。
  
  /**
  * 在本地获得数据库连接
  */
  
  package com.j2ee.db;
  
  import java.util.*;
  import java.sql.*;
  import javax.sql.*;
  import java.io.*;
  import oracle.jdbc.driver.*;
  import javax.naming.*;
  
  /**
  * 通过oci方式获得oracle数据库连接
  */
  public class dbconnection
  {
  final static string sdbdriver =
  "oracle.jdbc.driver.oracledriver";
  final static string sconnstr =
  "jdbc:oracle:oci8:sr/sr@ora199";
  
  /**
  *
  */
  public dbconnection()
  {
  }
  
  /**
  * 获得oracle数据库连接
  */
  public java.sql.connection connectdbbyoci()
  {
  java.sql.connection conn=null;
  try
  {
  class.forname(sdbdriver);
  conn = drivermanager.getconnection(sconnstr);
  }
  catch (exception e)
  {
  system.out.println("error:"+e.getmessage());
  }
  return conn;
  }
  }
  
  在连接字符串 "jdbc:oracle:oci8:sr/sr@ora199" 中,"sr/sr"为oracle用户的用户名和口令,"ora199"为数据库服务名。
  
  2、thin方式
  
  先到oracle技术网(http://otn.oracle.com/global/cn/software/tech/java/sqlj_jdbc/index.html)下载oracle jdbc drivers,同样地将下载后的zip文件的路径设置在环境变量classpath。然后通过以下的数据库连接类,在本地通过thin方式获得oracle数据库连接。
  
  /**
  * 在本地获得数据库连接
  */
  
  package com.j2ee.db;
  
  import java.util.*;
  import java.sql.*;
  import javax.sql.*;
  import java.io.*;
  import oracle.jdbc.driver.*;
  import javax.naming.*;
  
  /**
  * 通过thin方式获得oracle数据库连接
  */
  public class dbconnection
  {
  private string sconnstr = "";
  
  /**
  * 缺省构造器
  */
  public dbconnection()
  {
  sconnstr = "jdbc:oracle:thin:
  @10.1.4.199:1521:ora199";
  }
  
  /**
  * @param ip,servicename
  */
  public dbconnection(string ip,string servicename)
  {
  sconnstr = "jdbc:oracle:thin:
  @"+ip+":1521:"+servicename;
  }
  
  /**
  * 通过thin方式获得oracle数据库的连接.
  */
  public java.sql.connection connectdbbythin()
  {
  java.sql.connection conn=null;
  try
  {
  class.forname(sdbdriver);
  conn = drivermanager.getconnection
  (sconnstr,"sr","sr");
  }
  catch (exception e)
  {
  system.out.println
  ("error:"+e.getmessage());
  }
  return conn;
  }
  
  /**
  * 通过thin方式获得oracle数据库的连接.
  * @param userid,password
  */
  public java.sql.connection connectbyjdbc
  (string userid,string password)
  {
  java.sql.connection conn=null;
  try
  {
  class.forname(sdbdriver);
  conn = drivermanager.getconnection
  (sconnstr,userid,password);
  }
  catch (exception e)
  {
  system.out.println
  ("error:"+e.getmessage());
  }
  return conn;
  }
  }
  
  这种方式运用起来比较灵活,简单,具有较强的移植性和适用性。只要注意连接字符串"jdbc:oracle:thin:@10.1.4.199:1521:ora199"中具体参数的设置即可。
  
  3、jdbcodbc桥方式
  
  先通过管理工具中的数据源来添加本地对oracle数据库的连接,然后通过以下的数据库连接类,在本地通过jdbcodbc桥方式获得oracle数据库连接。
  
  /**
  * 在本地获得数据库连接
  */
  
  package com.j2ee.db;
  
  import java.util.*;
  import java.sql.*;
  import javax.sql.*;
  import java.io.*;
  import oracle.jdbc.driver.*;
  import javax.naming.*;
  
  /**
  * 通过jdbcodbc桥方式获得oracle数据库连接
  */
  public class dbconnection
  {
  /**
  *
  */
  public dbconnection()
  {
  }
  
  /**
  * 获得oracle数据库连接
  */
  public java.sql.connection
  connectdbbyjdbcodbcbridge()
  {
  java.sql.connection conn=null;
  try
  {
  class.forname("sun.jdbc.odbc.jdbcodbcdriver");
  con=drivermanager.getconnection
  ("jdbc:odbc:ora199","sr","sr");
  }
  catch (exception e)
  {
  system.out.println("error:"+e.getmessage());
  }
  return conn;
  }
  }
  
  在getconnection方法中第一个参数"jdbc:odbc:ora199" 中的"ora199"为本地odbc数据源的数据源名称,第二个参数和第三个参数分别为oracle的用户名和口令。
  
  二、通过连接池获得oracle数据库连接
  
  这部分主要讲述在iplanet application server 6.5和sun java system application server 7中oracle数据库连接池的配置,以及在应用中如何通过连接池获得数据库的连接。
  
  1、iplanet application server 6.5连接池的配置
  
  先打开iplanet application server 6.5的管理控制台,选中"database"面板,再选择"external jdbc drivers"选项后,点击"add…"按钮,在弹出的对话框中,添加一个名为"ora-type4"的jdbc driver。
   j2ee应用开发中与oracle数据库的连接(图一)
  driver classpath:该参数填写classes12.zip文件的物理路径。然后在"external jdbc datasources"中选择"add…",在弹出的对话框中添加一个jndi名称为"credit2"的数据源。
   j2ee应用开发中与oracle数据库的连接(图二)
  drivertype:选择刚添加好的"ora-type4";
  
  datasource:ora199,为oracle数据库服务名;
  
  connection pool parameters:图中显示的是缺省设置,可以根据自己环境情况来更改这些设置。保存完设置后,在"datasource selection box"中,选择刚添加的"credit2"数据源,再选择"vendor specific properties"按钮。在对话中添加一个url属性。
   j2ee应用开发中与oracle数据库的连接(图三)
  至此,iplanet application server 6.5中的数据库连接池配置完毕,重起服务使之生效。
  
  2、sun java system application server 7连接池的配置
  
  在配置之前将classes12.zip文件置于…/server1/lib目录下。通过浏览器的4848端口打开sun java system application server 7的管理界面,选择"server1"->"jdbc"-> "connection pools"下的"new…"
   j2ee应用开发中与oracle数据库的连接(图四)
  添加一个名称为"myconnectionpool"的oracle数据库连接池。"next"下一步。
   j2ee应用开发中与oracle数据库的连接(图五)
  在"general"中填写"datasource classname"。
   j2ee应用开发中与oracle数据库的连接(图六)
  在"properties"中将不需要的属性删除,同时添加"url"属性。
  
  "datasourcename"中填写oracle数据库服务名。
  
  以下连接池的缺省设置,可以根据自己环境的情况作相应的调整。
   j2ee应用开发中与oracle数据库的连接(图七)
  选择"finish"完成连接池的设置。
  
  下一步为"myconnectionpool"连接池创建一个jndi,以便应用程序能够通过该名称获得连接池中的连接。 "server1"->"jdbc"-> "jdbc resources"下的"new…"
  j2ee应用开发中与oracle数据库的连接(图八)
  至此,sun java system application server7中的数据库连接池配置完毕,重起服务使之生效。
  
  3、通过连接池获得连接
  
  以上在i

扫描关注微信公众号