1. 程式人生 > >Java 程式連線 Informix 資料庫方法例項介紹

Java 程式連線 Informix 資料庫方法例項介紹

概述

Informix 是一種應用廣泛的關係型資料庫伺服器,支援多種型別的客戶端連線程式,包括 .Net、Java、PHP 等。對於 Java 程式,Informix 支援兩種 JDBC 供客戶端連線,分別是 IBM Informix JDBC 和 IBM Data Server driver for JDBC and SQL/J。本文對這兩種 JDBC 進行詳細介紹,並給出 Java 使用兩種方法連線 Informix 的方法和例項。

JDK

JDK(Java Development Kit)是用來開發、編譯和執行 java 應用程式的軟體。在配置 JDBC 之前,應首先安裝配置好 JDK。JDK 可以從 Oracle 網站上下載得到。安裝完 JDK 後,需設定 JDK 的環境變數。(本文中的示例均是在 Linux 平臺下的配置)

清單 1. 設定 JDK 的環境變數
JAVA_HOME=/usr/java/jdk1.7.0_21
JRE_HOME=/usr/java/jdk1.7.0_21/jre
PATH=${PATH}:${JAVA_HOME}/bin:${JRE_HOME}/bin
CLASSPATH=.:${JAVA_HOME}/lib/dt.jar:${JAVA_HOME}/lib/tools.jar:${JRE_HOME}/lib
export JAVA_HOME JRE_HOME PATH CLASSPATH

安裝完 JDK 並設定完相關環境變數後,可以使用以下程式測試 JDK 是否可用。

清單 2. 測試 Java 程式 hello.java
public class hello {
public static void main(String args [ ])
{ System.out.println("Hello World!");
System.out.println("JDK installation is successful!");
}
}

編譯 Java 程式:$ javac hello.java

執行 Java 程式:$ java hello

JDBC

JDBC(Java DataBase Connectivity)是用於執行 SQL 語句的 Java API,可以為多種關係資料庫提供統一訪問,由一組用 

Java 語言 編寫的類和介面組成。圖 1 為 Java 程式使用 JDBC 連線資料庫的示意圖。

圖 1. Java 程式使用 JDBC 連線資料庫示意圖
圖 1. Java 程式使用 JDBC 連線資料庫示意圖

Informix 支援兩種 JDBC,分別是 IBM Informix JDBC Driver 和 IBM Data Server driver for JDBC and SQL/J。

IBM Informix JDBC Driver 是 Informix 軟體內建的 JDBC 驅動,支援 SQLI 通訊協議。IBM Informix JDBC Driver 支援所有的 Informix 資料型別。IBM Informix JDBC Driver 符合 JavaSoft 的 JDBC 規範。

IBM Data Server driver for JDBC and SQL/J 是 IBM 通用的 JDBC 驅動,可用於連線 DB2 和 Informix 資料庫,符合 Sun Microsystems 的 JDBC3.0 和 JDBC4.0 規範。IBM Data Server driver for JDBC and SQL/J 支援 DRDA(Distributed Relational Database Architecture)協議。(DRDA 協議是協調在不同平臺上的應用程式和資料庫系統通訊的一套協議,基於 Open Group 的資料庫互操作標準。)

IBM Data Server driver for JDBC and SQL/J 連線 Informix 具有如下限制:

  1. 只支援 Informix 11 或更高版本
  2. 不支援以下 Informix 資料型別
  • Complex types: ROW、SET、MULTISET、LIST
  • Opaque types
  • Interval type
  • Boolean:Boolean 型別被當成 smallint 型別

在 Java 程式中,建立和 Informix 資料庫的連線需要使用 DriverManager.getConnection() 方法,該方法中的 URL 引數為一個數據庫的連線字串,指定資料庫連線機制、資料庫例項名、資料庫等資訊。

下面介紹 Java 程式在使用這兩種不同的 JDBC 連線資料庫的配置方法。

IBM Informix JDBC Driver

安裝配置 JDBC

IBM Informix JDBC Driver 安裝軟體整合在 Informix 軟體安裝包,安裝 Informix 時選擇 Typical 選項包含該驅動,JDBC 的安裝路徑為:${INFORMIXDIR}/jdbc。單獨的 Informix JDBC 也可以從 IBM 網站下載 (下載連結見參考資料),當前最新的版本為 4.10。

安裝完 IBM Informix JDBC Driver 後,需要將檔案 ifxjdbc.jar 新增到環境變數 CLASSPATH 中。

清單 3. 設定 IBM Informix JDBC Driver 環境變數
CLASSPATH=${CLASSPATH}:${INFORMIXDIR}/jdbc/lib/ifxjdbc.jar
                        export CLASSPATH

設定 JDBC 連線字串

在 Java 程式中使用 JDBC 連線資料庫,首先應該載入使用的 JDBC 類,IBM Informix JDBC Driver 的類名為 com.informix.jdbc.IfxDriver。

建立 Java 程式與 Informix 資料庫的連線需要使用 DriverManager.getConnection() 方法,該方法中的 URL 引數為一個數據庫的連線字串,指定資料庫的連線資訊。使用不同的 JDBC 所需的 URL 引數也不相同。

使用 IBM Informix JDBC Driver 連線資料庫,連線字串的格式如下:

清單 4. 使用 IBM Informix JDBC Driver,連線字串格式
jdbc:informix-sqli://[{ip-address|host-name}:{port-number|service-name}][/dbname]: 
INFORMIXSERVER=servername[{;user=user;password=password] 
|CSM=([email protected],ENC=true)} [;name=value[;name=value]...]

其中,“jdbc:informix-sqli”指定使用的 JDBC 為 IBM Informix JDBC Driver;

“{ip-address|host-name}”為資料庫伺服器的 IP 地址主機名;

{port-number|service-name}”為資料庫伺服器監聽客戶端連線的埠號或服務名;

dbname”為資料庫名;

servername”為資料庫例項名。

IBM Data Server driver for JDBC and SQL/J

安裝配置 JDBC

IBM Data Server driver for JDBC and SQL/J 是獨立於 Informix 的軟體,已整合在 DB2 客戶端軟體。單獨的 IBM Data Server driver for JDBC and SQL/J 可以從 IBM 網站下載 (下載連結見參考資料)。

安裝完 IBM Data Server driver for JDBC and SQL/J 後,需要將檔案 db2jcc.jar 新增到環境變數 CLASSPATH 中。

清單 5. 設定 IBM Data Server driver for JDBC and SQL/J 環境變數
CLASSPATH=${CLASSPATH}:${JDBC_HOME}/jdbc_sqlj_driver/db2jcc.jar
export CLASSPATH

設定 JDBC 連線字串

在 Java 程式中使用 JDBC 連線資料庫,首先應該載入使用的 JDBC 類,IBM Data Server driver for JDBC and SQL/J 的類名為 com.ibm.db2.jcc.DB2Driver。

使用 IBM Data Server driver for JDBC and SQL/J 連線資料庫,連線字串的格式如下:

清單 6. 使用 IBM Data Server driver for JDBC and SQL/J,連線字串格式
jdbc:ids://{ip-address|host-name}:{port-number}/{dbname}:
[name=value[;name=value]. . .]

其中,“jdbc:ids”指定使用的 JDBC 為 IBM Data Server driver for JDBC and SQL/J,且連線的資料庫型別為 Informix;

“{ip-address|host-name}”為資料庫伺服器的 IP 地址主機名;

{port-number}”為資料庫伺服器監聽客戶端連線的埠號;

dbname”為資料庫名。

使用 IBM Data Server driver for JDBC and SQL/J 連線 Informix 資料庫不用指定資料庫例項名。

Java 程式連線 Informix 資料庫例項

Informix 例項環境

IP:9.123.147.100

Informix 例項名:demoserver、demoserver_drda

sqlhosts 檔案:

清單 7. 伺服器 sqlhosts 檔案
demoserver onsoctcp 9.123.147.100 9088
demoserver_drda drsoctcp 9.123.147.100 10000

連線 Informix 資料庫的 Java 程式

下面是連線 Informix 資料庫的 Java 程式,先後使用 IBM Informix JDBC 和 IBM Data Server driver for JDBC and SQL/J 進行連線。從 sqlhosts 檔案可以看到 Informix 例項配置了 2 個例項別名 demoserver 和 demoserver_drda,分別支援標準的 Informix 協議和 DRDA 協議。在使用 IBM Informix JDBC 連線資料庫時,我們連線的是 demoserver,而使用 IBM Data Server driver for JDBC and SQL/J 時,連線的是 demoserver_drda。

清單 8. 連線 Informix 資料庫 Java 程式
import java.util.*;
import java.sql.*;
public class test_jdbc {
private static String URL_STRING[] = {
"jdbc:informix-sqli://9.123.147.100:9088/sysmaster:INFORMIXSERVER=demoserver",
"jdbc:ids://9.123.147.100:10000/sysmaster"
} ;
private static String USER = "informix";
private static String PASSWORD = "informix1";
public static void main( String[] args)
throws SQLException, ClassNotFoundException {
Connection conn;
Class.forName("com.informix.jdbc.IfxDriver");
Class.forName("com.ibm.db2.jcc.DB2Driver");
for (int i = 0; i < 2; i++) {
try {
System.out.println("Testing JDBC URL: " + URL_STRING[i]);
conn = DriverManager.getConnection(URL_STRING[i], USER, PASSWORD);
System.out.println("connect successfully");
conn.close();
} catch( Exception e) {
e.printStackTrace();
}
}
return;
}
}

結束語

本文介紹了 Java 程式連線 Informix 資料庫的兩種 JDBC,IBM Informix JDBC 和 IBM Data Server driver for JDBC and SQL/J,以及兩種 JDBC 的安裝配置和使用方法,並提供了示例程式,希望這篇文章對您開發應用程式有所幫助。

相關推薦

Java 程式連線 Informix 資料庫方法例項介紹

開您的試用 概述 Informix 是一種應用廣泛的關係型資料庫伺服器,支援多種型別的客戶端連線程式,包括 .Net、Java、PHP 等。對於 Java 程式,Informix 支援兩種 JDBC 供客戶端連線,分別是 IBM Informix JDBC 和 IBM Data Server dr

java程式連線mysql8.0.12資料庫連線異常

  最近做SSM框架整合練習,資料庫使用最新的 mysql8.0.12版本,但是部署好伺服器後,請求相應的資源時報org.springframework.transaction.CannotCreateTransactionException異常,查了很多資料,終於找到原因,現做一個總結。   以往版本的my

Java 連線 MySQL 資料庫方法

Java 連線 MySQL 資料庫方法 1、傳統的連線方式 # 動態載入mysql驅動 Class.forName("com.mysql.jdbc.Driver"); 獲取連線

window下的java程式連線linux系統的mysql資料庫

實現的功能:window下連線linux的mysql資料庫 準備的環境: windows:1.已經編寫好的連線資料庫的java測試程式: package com.jdbc; import java.sql.Connection; import java.sql.Dri

java程式與SQLServer2008資料庫載入驅動並連線原始碼

   import java.sql.*; public class SQLServer_Connection {public static void main(String[] args) {String driverName = "com.microsoft.sql

java連線sqlserver2012資料庫方法

1. 安裝sqlserver2012 http://blog.csdn.net/txwtech/article/details/62862523 2. 開啟SQL Server Management Studio並登陸資料庫 http://blog.csdn.net/txw

MyCat入門+JAVA程式連線

本文章主要對mycat的配置檔案註釋說明,詳細的安裝使用請戳這個地址:mycat安裝使用 連線mycat時,將原先連線mysql的埠和資料庫改為mycat的埠8066,和mycat的邏輯資料庫TESTDB,使用者名稱和密碼為server.xml表裡設定的user。 jdbc.url

應用程式連線HGDB資料庫

1、資料庫連線驅動 驅動:com.highgo.jdbc.Driver URL:  jdbc:highgo://ip:埠號/資料庫名       jdbc:highgo://localhost:5866/highgo"(示例) 使用者名稱:high

python連線MongoDB資料庫方法及增刪改查等操作小結。

Y9   建議安裝MongoDB視覺化工具“Robo 3T”,可以很直觀的看到對MongoDB操作後的資料。 1、‘Robo 3T’的安裝,網上很多途徑可下載,在此分享我使用的版本: 連結:https://pan.baidu.com/s/1EcjmUVkXz1GQeTXy2fMk

JAVA JDBC連線Oracle資料庫

package com.deng.test; import java.sql.Connection; import java.sql.DriverManager; import java.sql.PreparedStatement; import java.sql.ResultSet; impor

Java Radom類的使用方法例項

package com.zhangxueliang.demo; import java.util.Random; public class RandomDemo { public stati

Java程式向MySql資料庫中插入的資料變成了問號

其實,當我們看到這個問題的時候都會很快的想到是編碼格式的問題。但是當我檢視MyEclipse中的編碼格式的時候發現,編碼方式是沒有問題的,而且自己寫的JSP頁面中的編碼格式也是沒有問題的。那麼這會嘛原因的? 後來在檢視Mysql的資料時候發現: 1、MySQL的預設編碼是La

unixODBC資料來源配置+Python自定義類連線Informix資料庫

Python自定義類連線資料庫 利用之前unixODBC配置的資料來源,自定義一個類然後連線資料庫 import pyodbc class DB18: def __init__(self): self.conn = self.open()

Java程式猿之資料庫理論

一、事務的四大特性 ACID 只有滿足一致性,事務的執行結果才是正確的。 在無併發的情況下,事務序列執行,隔離性一定能夠滿足。此時要只要能滿足原子性,就一定能滿足一致性。 在併發的情況下,多個事務併發執行,事務不僅要滿足原子性,還需要滿足隔離性,才

本地Navicat可以連線linux上的mysql8.0.13但Java程式連線連線不上(mysql8.0.13驅動配置)

原因:mysql5.6以上版本驅動包和驅動配置變了 mysql5.6以前版本配置: db.properties配置: jdbc.driver=com.mysql.jdbc.Driver jdbc.url=jdbc:mysql://localhost:3306/taota

Java: JDBC連線MySQL資料庫插入中文內容出現亂碼

如上圖, 向MySQL資料庫中插入中文內容時, 插入的資訊變成了問號。 解決辦法如下: 1. 設定jsp頁面的編碼格式。 <%@page contentType="text/html; charset=UTF-8" pageEncoding="UTF-8" %> &

DbVisualizer Pro 9 連線Informix資料庫

1.關閉Linux裡邊的selinux SELinux是Linux系統上一個常見的安全軟體。命令getenforce來檢視一下SELinux的狀態. [[email protected] ~]# getenforce Enforcing SELinux一共有3種狀態,分別是Enforcin

Java返回泛型的方法-例項

package com.frank.app; import java.io.UnsupportedEncodingException;import java.lang.reflect.Type;import java.net.URLEncoder;import java.util.LinkedList;imp

JSP | 使用純JAVA驅動連線MySQL資料庫

本程式採用的整合開發環境是eclipse。採用的資料庫是JspStudy裡整合的MySQL資料庫。MySQL的java連線驅動在jspstudy的安裝目錄下Tomcat——>lib資料夾下:沒有安裝jspstudy的話,mysql的java驅動可以在官網下載:https

關於java,tomcat連線mySql資料庫

關於在java中和在tomcat做.jsp過程中要使用到 mySql資料庫。 剛開始的時候老鬱悶了。 //老是提示  ClassNoFound... String driver = "com.mysql.jdbc.Driver"; Class.forName(driver