首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> Java 程式設計 >> Java 相關知識

JDBC-ODBC 橋接器實現 Applet 連線 SQL Server:完整代碼範例

     編輯:Java 相關知識

架構概覽

Applet → JDBC → JDBC-ODBC Bridge (sun.jdbc.odbc.JdbcOdbcDriver) → 系統 ODBC DSN → SQL Server。注意:JDBC-ODBC Bridge 已在 Java 8 移除,現代專案請使用純 Java 驅動(mssql-jdbc)。

前置準備

  1. SQL Server 建立資料庫 COMPANY、資料表 TB_NAME(欄位 number、name)。
  2. Windows「控制台」→「管理工具」→「ODBC 資料來源」→「系統 DSN」新增 javadata,指向 SQL Server、資料庫 COMPANY,認證模式選 SQL Server 驗證(sa/密碼)。
  3. Applet 簽名或調整瀏覽器安全策略(允許本地 JDBC-ODBC 橋接器載入)。

Applet 核心代碼


import java.net.*;
import java.sql.*;
import java.applet.Applet;

public class DBApplet extends Applet {
    public void init() {
        String url = "jdbc:odbc:javadata"; // 系統 DSN 名稱
        try {
            // 1. 載入橋接驅動
            Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");

            // 2. 建立連線(sa 帳號、空密碼)
            Connection con = DriverManager.getConnection(url, "sa", "");

            // 3. 顯示連線元資料
            DatabaseMetaData meta = con.getMetaData();
            System.out.println("Connected to: " + meta.getURL());
            System.out.println("Driver: " + meta.getDriverName() + " v" + meta.getDriverVersion());

            // 4. 執行查詢
            Statement stmt = con.createStatement();
            ResultSet rs = stmt.executeQuery(
                "SELECT * FROM company.dbo.TB_NAME WHERE number = 1");

            if (rs.next()) {
                String name = rs.getString("name");
                System.out.println("查詢結果: " + name);
                // 實際應用可在 paint() 繪製或用 AWT 組件顯示
            }

            // 5. 關閉資源(逆序)
            rs.close();
            stmt.close();
            con.close();

        } catch (SQLException ex) {
            System.err.println("!!! SQL Exception !!!");
            while (ex != null) {
                System.err.println("SQLState: " + ex.getSQLState());
                System.err.println("Message: " + ex.getMessage());
                System.err.println("Vendor Code: " + ex.getErrorCode());
                ex = ex.getNextException();
            }
        } catch (Exception ex) {
            ex.printStackTrace();
        }
    }
}

HTML 嵌入標籤


<applet code="DBApplet.class" width="400" height="300">
    <param name="codebase" value="." />
</applet>

現代化遷移建議

  • 移除 JDBC-ODBC:引入 com.microsoft.sqlserver:mssql-jdbc (Maven Central)。
  • 連線字串:jdbc:sqlserver://host:1433;databaseName=COMPANY;user=sa;password=xxx。
  • Applet 棄用:改為 Java Web Start、JavaFX、或純前端 + REST API 架構。
  • 連線池:生產環境必須使用 HikariCP / Druid 管理連線。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved