新手學JAVA----走進JDBC

來源:互聯網
上載者:User

標籤:jdbc

  • 什麼是JDBC
  • 為什麼要用JDBC
  • 怎麼用JDBC

什麼是JDBC?

JDBC(Java Data Base Connectivity, Java 資料庫連接)是一種用於執行SQL語句的JavaAPI,可以為多種關聯式資料庫提供統一訪問。簡單地說,JDBC 可做三件事:與資料庫建立串連、發送 SQL 陳述式並處理結果。

為什麼要用JDBC?

在沒有JDBC之前,應用程式可以通過資料庫廠商提供的API及SQL語句對資料庫進行操作,如:

有了JDBC,向各種關係資料發送SQL語句就是一件很容易的事,換言之,有了JDBC API,就不必為方位MySQL資料庫專門寫一個程式,為訪問Oracle資料庫又專門寫一個程式,或為訪問SQLServer資料庫又編寫另一個程式,等等,程式員只需用JDBC API 寫一個程式就夠了,它可想相應的資料庫發送SQL調用,同時將JAVA語言和JDBC結合起來使程式員不必為不同的平台編寫不同的應用程式,只需寫一遍程式就可以讓它在任何平台上運行。如:

怎麼用JDBC?

JDBC的主要功能如下:

  • 建立與資料庫或其他資料來源的串連
  • 向資料庫發送SQL命令
  • 處理資料庫的返回結果

下面通過一個例子來示範Java資料庫一個用程式反問資料庫的全過程。

import java.sql.*; //匯入包import java.sql.Connection;import java.sql.DriverManager;public class JDBCMain {    // 資料庫的連結    private Connection con = null;    private Statement st = null; // 執行SQL語句的對象    private ResultSet rs = null; // 結果集對象    public JDBCMain() {        // 橋串連        try {            // 聲明驅動程式            String driver = "com.microsoft.sqlserver.jdbc.SQLServerDriver";            // users就是資料來源的名稱            String ds = "jdbc:sqlserver://localhost:1433;databaseName=JavaSpecial";            // 資料來源的登入名稱            String user = "sa";            // 資料來源的密碼            String password = "123456";            // 連結資料庫            Class.forName(driver); // 載入資料庫的驅動程式            con = DriverManager.getConnection(ds, user, password);            if (con != null) {                System.out.println("資料庫連結成功!");            }        } catch (Exception e) {            System.out.println("資料庫連接失敗!" + e.toString());        }    }    /**     * 普通查詢     * @param sqlQuery     */    public void query(String sqlQuery) {        try {            // Connection con = null;            Statement st = con.createStatement(); // 得到Statement的執行個體            ResultSet rs = st.executeQuery(sqlQuery); // 執行SQL語句,返回結果集            // 當返回的結果集不為空白是,並且還有記錄時            while (rs != null && rs.next()) {                int stu_num = rs.getInt(1); // 獲得目前記錄的第1個欄位的值                String name = rs.getString("name"); // 獲得目前記錄中"name"欄位的值                int age = rs.getInt("age"); // 獲得目前記錄中"age"欄位的值                int math = rs.getInt("math"); // 獲得目前記錄中"math"欄位的值                int english = rs.getInt("english"); // 獲得目前記錄中"english"欄位的值                System.out.println("學號=" + stu_num + "\t 姓名=" + name + "\t 年齡="                        + age + "\t 數學成績=" + math + "\t 英語成績=" + english);            }        } catch (Exception e) {            // 拋出異常            System.out.println("查詢資料時出錯" + e.toString());        }    }    /**     * /添加,刪除,更新     */    public void add_update_Del(String sql) {        try {            Statement st = con.createStatement(); // 產生Statement對象            int x = st.executeUpdate(sql); // 執行操作            System.out.println("操作成功" + x);        } catch (Exception e) {            System.out.println("資料修改時有誤" + e.toString());        }    }    // 主程式    public static void main(String[] args) {        JDBCMain jc = new JDBCMain();        // 查詢        String name = "張三";        String sqlQuery = "select * from stu_info where name=‘" + name + "‘";        jc.query(sqlQuery);        //添加        String sqlAdd ="insert into stu_info values(7,‘令仔‘,17,89,84)";        jc.add_update_Del(sqlAdd);        //更改        String sqlUpdate ="update stu_info set math =95 where name =‘張三‘";        jc.add_update_Del(sqlUpdate);        //刪除        String sqlDelete ="delete from stu_info where name=‘張三‘";        jc.add_update_Del(sqlDelete);    }}

下面是原始碼下載的連結:JDBC資料庫連接測試

著作權聲明:本文為博主原創文章,未經博主允許不得轉載。

新手學JAVA----走進JDBC

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.