本文介紹WebSphere下Oracle、SQL Server、Sybase、MySQL數據庫連接池的配置方法,並給出相應調用連接池的示例。相對於Weblogic,WebSphere連接池的配置要稍微複雜一些,因爲缺少相關的文檔,需要一定的技巧和經驗。特別是對於初學者,完整的配置好Websphere連接池還是有一定難度的。 一、系統準備 1.在相應的數據庫中建立本文用到的表
2.準備環境變量,此部分往往會被初學者忽略。 點擊“管理WebSphere變量”,ORACLE_JDBC_DRIVER_PATH的值輸入操作系統中jar文件(classes12.jar)的位置。 “確認”後,界面最上方,點擊“保存”,會再提示“保存”還是“放棄”,再選“保存”。 爲方便起見,本文中,SQL Server的jar文件(msbase.jar、mssqlserver.jar、msutil.jar )、Sybase的jar文件(jconn2.jar)、mySQL的jar文件(mysql-connector-java-3.1.10-bin.jar)都放在同一目錄(如:C:/oracle/ora92/jdbc/lib)。 3.本文中的所有例子測試均通過,環境:Windows2003、WebShpere5.1、ORACLE9I、SQL Server 2000、SYBASE12.5、MySQL5.0。 二、Oracle、SQL Server、Sybase、MySQL數據庫連接池在WebSphere中的詳細配置步驟 (一)、Oracle連接池的配置 1.進入管理控制檯(http://localhost:9090/admin/) 2.選擇:資源->JDBC提供程序,點擊“新建”,建立JDBC提供程序。 點擊“應用”後,類路徑中,輸入“${ORACLE_JDBC_DRIVER_PATH}/classes12.jar”,再點擊“應用”。 3.定義數據源 點擊界面中“數據源後”再點擊“新建”,建立數據源。 JNDI取名ORACLE_JNDI,點擊“應用”。 4.界面上點擊“定製屬性”,定義連接池的JDBC Driver、URL、用戶名和口令等信息。 點擊“URL”,URL的值輸入:jdbc:oracle:thin:@localhost:1521:MYHORA,其中,localhost可以爲ORACLE的IP地址,MYHORA是ORACLE的服務名稱。 點擊“確定”保存配置。 同樣的方法輸入: driverType的值oracle.jdbc.driver.OracleDriver databasename的值MYHORA servername的值localhost preTestSQLString的值爲SELECT COUNT(1) FROM TEST 其餘的取默認值。 5.本部分比較關鍵,是初學着比較困惑的地方。 我們看到,界面上並沒有輸入用戶名、口令的地方,而沒有用戶名稱、口令是無法連接數據庫的。 在“定製屬性”中點擊“新建”,“名稱”中輸入user,“值”中輸入數據庫的用戶名稱,如:study,點擊“確定”; 在“定製屬性”中點擊“新建”,“名稱”中輸入password,“值”中輸入數據庫的口令,如:study,點擊“確定”; 我們看到,“定製屬性”中多了兩個我們自定義的屬性user、password 6.保存配置,在“定製屬性”界面的最上方點擊“保存”。 7.測試連接 系統提示:成功信息,表明,連接池配置成功。 連接池配置成功後,WebSphere需要重新啓動。 (二)、SQL server連接池的配置 SQL Server連接池的配置步驟同Oracle,具體的參數值: JDBC 提供程序:下拉選擇Microsoft JDBC driver for MSSQLServer 2000 Sybase連接池的配置步驟也同Oracle,具體的參數值: 常規屬性中的名稱:Microsoft JDBC driver for MSSQLServer 2000 常規屬性中的描述:Microsoft JDBC driver for MSSQLServer 2000 常規屬性中的類路徑: ${ORACLE_JDBC_DRIVER_PATH}/msbase.jar ${ORACLE_JDBC_DRIVER_PATH}/mssqlserver.jar ${ORACLE_JDBC_DRIVER_PATH}/msutil.jar 常規屬性中的實現類名:默認 數據源中的名稱:SQLSERVER_JNDI 數據源中的JNDI:SQLSERVER_JNDI 定製屬性中的databaseName:數據庫名稱 定製屬性中的serverName:Sybase數據庫服務器的名稱或IP 定製屬性中的portNumber:端口號 定製屬性中的preTestSQLString:SELECT COUNT(1) FROM TEST 同Oracle,手工“新建”user和password屬性,值爲數據庫的用戶名和口令,該用戶的缺省數據庫必須爲databaseName的值。 其他默認。 (三)、Sybase連接池的配置 JDBC 提供程序:下拉選擇Sybase JDBC Driver Sybase連接池的配置步驟也同Oracle,具體的參數值: 常規屬性中的名稱:SYBASE JDBC Driver 常規屬性中的描述:SYBASE JDBC Driver 常規屬性中的類路徑:${ORACLE_JDBC_DRIVER_PATH}/jconn2.jar 常規屬性中的實現類名:默認 數據源中的名稱:SYBASE_JNDI 數據源中的JNDI:SYBASE_JNDI 定製屬性中的databaseName:數據庫名稱 定製屬性中的serverName:Sybase數據庫服務器的名稱或IP 定製屬性中的portNumber:端口號 定製屬性中的preTestSQLString:SELECT COUNT(1) FROM TEST 同Oracle,手工“新建”user和password屬性,值爲數據庫的用戶名和口令,該用戶的缺省數據庫必須爲databaseName的值。 其他默認。 (四)、MySQL連接池的配置 MySQL連接池的配置步驟同Oracle稍有不同,JDBC 提供程序中並沒有MySQL中的選項,選Oracle JDBC Driver就可以,實際運行中,WebSphere是以設置的參數爲準的。 具體的參數值: 常規屬性中的名稱:MySQL JDBC Driver 常規屬性中的描述:MySQL JDBC Driver 常規屬性中的類路徑:${ORACLE_JDBC_DRIVER_PATH}/mysql-connector-java-3.1.10-bin.jar 常規屬性中的實現類名:com.mysql.jdbc.jdbc2.optional.MysqlConnectionPoolDataSource 數據源中的名稱:MYSQL_JNDI 數據源中的JNDI:MYSQL_JNDI 由於WebSphere沒有缺省的MySQL選項,“定製屬性”全部需要手工新建。具體的值要根據MySQL的實際環境要做相應修改(petshop是我機器上的數據庫名稱)。 三、應用程序中測試連接池。 1. jsp程序中測試連接池 附件中的TestConnPoolWeb.ear文件直接發佈後, 運行:http://localhost:9080/TestConnPoolWeb/oracle_pool.jsp,結果:ORACLE_JNDI:FromTest 運行:http://localhost:9080/TestConnPoolWeb/sqlserver_pool.jsp,結果:SQLSERVER_JNDI:FromTest 運行:http://localhost:9080/TestConnPoolWeb/sybase_pool.jsp,結果:SYBASE_JNDI:FromTest 運行:http://localhost:9080/TestConnPoolWeb/mysql_pool.jsp,結果:MYSQL_JNDI:FromTest 2. 程序說明 得到連接的方法:
參數strConnPoolJndi分別爲:ORACLE_JNDI、SQLSERVER_JNDI、SYBASE_JNDI、MYSQL_JNDI,對於相應的數據庫。 從表中查詢一條數據:
jsp中打印出表中的一條記錄:
|