當前位置:網站首頁>JDBC編碼六步走

JDBC編碼六步走

2022-01-28 08:10:28 CamphorBloom

JDBC介紹

Java Database Connectivity(簡稱JDBC)是Java語言中用來規範客戶端程序如何來訪問數據庫的應用程序接口

JDBC的本質

JDBC是SUN公司制定的一套連接數據庫的接口(interface)。而接口都有調用者(程序員)和實現者(各大數據庫廠商),這些面向接口調用。面向接口寫實現類的操作,都屬於面向接口編程思想。

面向接口編程是一種非常受益的思想,java的多態機制就是個典型範例(面向抽象編程)。

第一步:注册驅動

作用是告知java程序即將要連接的數據庫廠商品牌(MySQL、Oracle、SQLserver)。

第二步:獲取連接

打開JVM進程與數據庫進程之間的通道,屬於進程間通信,重量級。

第三步:獲取數據庫操作對象

專門執行SQL語句的對象。

第四步:執行SQL語句(DQL、DML)

第五步:處理查詢結果

只有當第四步執行的是select語句時,才會處理查詢後的結果集。

第六步:釋放資源

使用完畢,一定要及時關閉連接。

數據驅動jar包,各種mysql-connector-java版本下載地址:https://mvnrepository.com/artifact/mysql/mysql-connector-java

注意:mysql8和mysql5的導入包路徑不同。
mysql5:com.mysql.jdbc.Driver
mysql8:com.mysql.cj.jdbc.Driver

我這裏用的是mysql-connector-java-8.0.22.jar,下面IDEA演示操作:

1、添加jar包至library庫中。

我事先在項目中創建了名為jdbc_test模塊。

(1)選擇File-》Project Structure

(2)選擇Libraries-》點擊‘+’號-》Java

 (3)選擇下載好的mysql驅動,點擊OK

 (4)選擇jdbc_test模塊,點擊OK

最後別忘了Apply和OK,這樣成功添加進來了。

 

2、連接代碼測試示例:

public class JDBCTest01 {
    public static void main(String[] args) throws SQLException {
        Connection conn = null;
        Statement stmt = null;
        // 1、注册驅動
        Driver driver = new com.mysql.cj.jdbc.Driver();
        DriverManager.registerDriver(driver);
        // 2、獲取連接
        String url = "jdbc:mysql://127.0.0.1:3306/bookstore?serverTimezone=UTC";
        String user = "root";
        String password = "xxx"; // 自己的數據庫密碼
        conn = DriverManager.getConnection(url, user, password);
        System.out.println("數據庫連接對象:" + conn);
//        [email protected]

        // 3、獲取數據庫操作對象
        // Statement createStatement() 創建一個 Statement 對象來將 SQL 語句發送到數據庫。
        stmt = conn.createStatement();

        // 4、執行sql語句
        // int executeUpdate(String sql)
        // 專門執行DML語句,返回值是“影響數據庫中的記錄條數”
//        int count = stmt.executeUpdate("update dept set dname = '銷售部',loc = '合肥' where deptno = 20;");
        int count = stmt.executeUpdate("update users set username= 'mike' where id=13;");
        System.out.println(count == 1 ? "保存成功":"保存失敗");

        // 5、處理查詢結果集

        // 6、釋放資源
        // 從小到大,從後往前依次關閉
        try	{
            stmt.close();
        }
        catch (SQLException e) {
            e.printStackTrace();
        }
        if(conn != null) {
            try	{
                conn.close();
            }
            catch (SQLException e) {
                e.printStackTrace();
            }
        }
    }
}

 如果啟動報時區錯誤的話,在你連接數據庫的url後加上參數 ?serverTimezone=UTC。

3、執行結果:

 

版權聲明
本文為[CamphorBloom]所創,轉載請帶上原文鏈接,感謝
https://cht.chowdera.com/2022/01/202201280810278721.html

隨機推薦