使用 Java 進行 MySQL 開發 (摘自:MySQL for Linux on POWER,第 2 部分: 開發應用)

來源:互聯網
上載者:User

使用 Java 進行 MySQL 開發

有一類非常廣泛的話題:與 MySQL 等關係型資料庫通訊的基於 Java 的多層應用程式。本節介紹了一個非常簡單的樣本,使用本地 Java 應用程式串連到 MySQL。

為了讓 Java 程式能夠與特定的資料庫進行通訊,您要有一個用於那個資料庫的 Java Database Connectivity(JDBC)驅動程式。與大部分主流的關聯式資料庫管理系統(Relational Database Management Systems,RDBMS)一樣,MySQL 也有其自己的 JDBC 驅動程式,當前包括:

  • 來自 MySQL AB 的 MySQL Connector/J
  • Resin JDBC 驅動程式

 

MySQL Connector/J 是用於 MySQL RDBMS 的 Sun 的 JDBC 3.0 API 實現,是用於 MySQL 的官方 JDBC 驅動程式。它是百分之百使用 Java 編寫的,因此可以運行於任何具備適當 JVM 環境的作業系統中,包括 POWER 上 Linux 發行版本。所以,此樣本使用的是 Connector/J 驅動程式。它是類型 IV JDBC 驅動程式,已知能夠在 POWER 上 Linux 中應用於多種 Web 應用程式伺服器,比如 IBM WebSphere、BEA WebLogic、Apache Tomcat、JBoss,還有很多。

當然,除了需要用於 MySQL 的 JDBC 驅動程式以外,您還需要 JDK 本身。撰寫本文時,IBM 為用於 POWER 和 PPC 體繫結構的 Linux 所提供的最新版本是 JDK 1.4.2,既有 32-位 的也有 64-位的。可以線上獲得針對 Java 技術的 IBM Developer Kits(見 參考資料)。

此樣本展示的基本代碼將串連到 MySQL 資料庫並執行查詢。

下面是本樣本的完整的 Java 代碼:

清單 2. Java 程式碼範例

            import java.io.*;            import java.util.*;            import java.sql.*;            public class Java_MySQL            {            public static void display_rs(ResultSet rs) throws SQLException            {            try{            ResultSetMetaData rsmd = rs.getMetaData();            for (int i = 1; i <= rsmd.getColumnCount(); ++i)            System.out.print("\t\t\t" + (rsmd.getColumnName(i)).toUpperCase() );            System.out.println();            while ( rs.next() )            {            for (int j = 1; j <= rsmd.getColumnCount(); ++j)            {            Object obj = rs.getObject(j);            System.out.print("\t\t\t" + obj.toString());            }            System.out.println();            }            }            catch (SQLException E) {            System.out.println("SQLException: " + E.getMessage());            System.out.println("SQLState:     " + E.getSQLState());            System.out.println("VendorError:  " + E.getErrorCode());            E.printStackTrace();            System.exit(1);            }            }            public static void main(String args[])            {            Statement statement = null;            Connection connection = null;            ResultSet resultset;            String query, prompt, input;            int choice = -1;            try {Class.forName("com.mysql.jdbc.Driver").newInstance();}            catch (Exception E) {            System.err.println("Unable to load driver.");            E.printStackTrace();            System.exit(1);            }            try {            String url="jdbc:mysql://localhost/CONTRACTING";            String username="username";            String password="password";            connection=DriverManager.getConnection(url, username, password);            }            catch (SQLException E) {            System.out.println("SQLException: " + E.getMessage());            System.out.println("SQLState:     " + E.getSQLState());            System.out.println("VendorError:  " + E.getErrorCode());            E.printStackTrace();            connection=null;            System.exit(1);            }            prompt = "\n\t\t\t1. Show contents of the table JOB\n" +            "\t\t\t2. Exit\n\n";            while(true)            {            System.out.println(prompt);            try {            BufferedReader in = new BufferedReader(new InputStreamReader(System.in));            input = in.readLine();            choice = Integer.parseInt(input);            }            catch (Exception e) {            e.printStackTrace();            System.exit(1);            }            try {            switch (choice)            {            case 1:            query="SELECT * FROM JOB;";            statement = connection.createStatement();            resultset = statement.executeQuery(query);            display_rs(resultset);            break;            case 2:            System.out.println("Bye!");            System.exit(0);            default:            System.err.println("Invalid value entered!");            }            }            catch (SQLException E) {            System.out.println("SQLException: " + E.getMessage());            System.out.println("SQLState:     " + E.getSQLState());            System.out.println("VendorError:  " + E.getErrorCode());            E.printStackTrace();            connection=null;            System.exit(1);            }            }            }            }            

函數 display_rs() 中有顯示 ResultSet 對象的標準代碼。與 MySQL 資料庫的串連在 main() 函數中完成。

在 MySQL Connector/J 中實現 java.sql.Driver 的類的名稱是 com.mysql.jdbc.Driverorg.gjt.mm.mysql.Driver 類名可以用於保持與較老版本的向後相容。

讓 JVM 可以使用 Connector/J JDBC 驅動程式的最常見方式是,在 CLASSPATH 變數中包含 mysql-connector-java-[version]-bin.jar 檔案的路徑。

下面給出了字串,接著是通常的 JDBC URL 格式:

String url="jdbc:mysql://localhost/CONTRACTING";            

成功地串連到 MySQL 伺服器和資料庫後,您就可以執行簡單的查詢,如下:

1. Show contents of the table JOB            2. Exit            

選項“1”將顯示出查詢 “SELECT * FROM JOB”的結果。

JOB_CODE        JOB_NAME                     JOB_HOUR_CHRG            200             Application Programmer       35.48            201             Database Administrator       38.50            202             Technical Support            27.00            207             Database Designer            49.99            

第二個選項將產生 JOB 表的內容,第三個選項將關閉程式。

此樣本的編譯和運行使用的是 IBM 為用於 POWER 和 PPC 體繫結構的 Linux 所提供的 64-位 JDK 1.4.2。

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.