鸣谢:http://blog.csdn.net/m13666368773/article/details/7234171
一、本地通过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; } } |
/** * 在本地获得数据库连接 */ 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; } } |
/** * 在本地获得数据库连接 */ 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 ONE Application Server 7中Oracle数据库连接池的配置,以及在应用中如何通过连接池获得数据库的连接。
1、iPlanet Application Server 6.5连接池的配置
先打开iPlanet Application Server 6.5的管理控制台,选中"database"面板,再选择"External JDBC Drivers"选项后,点击"Add…"按钮,在弹出的对话框中,添加一个名为"ora-type4"的JDBC Driver。
Driver Classpath:该参数填写classes12.zip文件的物理路径。
然后在"External JDBC DataSources"中选择"Add…",在弹出的对话框中添加一个JNDI名称为"credit2"的数据源。
DriverType:选择刚添加好的"ora-type4";
Datasource:ora199,为Oracle数据库服务名;
Connection Pool Parameters:图中显示的是缺省设置,可以根据自己环境情况来更改这些设置。
保存完设置后,在"DataSource Selection Box"中,选择刚添加的"credit2"数据源,再选择"Vendor Specific Properties"按钮。在对话中添加一个URL属性。
至此,iPlanet Application Server 6.5中的数据库连接池配置完毕,重起服务使之生效。
2、Sun ONE Application Server 7连接池的配置
在配置之前将classes12.zip文件置于…/server1/lib目录下。通过浏览器的4848端口打开Sun ONE Application Server 7的管理界面,选择"server1"->"JDBC"-> "Connection Pools"下的"New…"
添加一个名称为"MyConnectionPool"的Oracle数据库连接池。"Next"下一步。
在"General"中填写"Datasource Classname"。
在"Properties"中将不需要的属性删除,同时添加"URL"属性。
"dataSourceName"中填写Oracle数据库服务名。
以下连接池的缺省设置,可以根据自己环境的情况作相应的调整。
选择"Finish"完成连接池的设置。
下一步为"MyConnectionPool"连接池创建一个JNDI,以便应用程序能够通过该名称获得连接池中的连接。 "server1"->"JDBC"-> "JDBC Resources"下的"New…"
至此,Sun ONE Application Server7中的数据库连接池配置完毕,重起服务使之生效。
3、通过连接池获得连接
以上在iPlanet Application Server 6.5和Sun ONE Application Server7中配置的连接池都可以通过以下的数据库连接类,从连接池中获得Oracle数据库连接。
/** * 从连接池中获得数据库连接 */ package com.j2ee.db; import java.util.*; import java.sql.*; import javax.sql.*; import java.io.*; import oracle.jdbc.driver.*; import javax.naming.*; /** * 通过连接池方式获得Oracle数据库连接 */ public class DbConnection { /** * */ public DbConnection() { } /** * 获得Oracle数据库连接 */ public java.sql.Connection connectDbByConnectionPool() { java.sql.Connection conn=null; try { Context ctx = new InitialContext(); DataSource ds = (DataSource)ctx.lookup("jdbc/credit2"); conn=ds.getConnection(); } catch (Exception e) { System.out.println("ERROR:"+e.getMessage()); } return conn; } } |
Trackback: http://tb.blog.csdn.net/TrackBack.aspx?PostId=38402