JDBC 連接數據庫


JDBC 連接數據庫

一、什么是 JDBC

JDBC(Java DataBase Connectivity,Java 數據庫連接)是一種用於執行 SQL 語句的 Java API,可以為多種關系型數據庫提供統一訪問,它由一組用 Java 語言編寫的類和接口組成。JDBC 提供了一種基准,據此可以構建更高級的工具和接口,使數據庫開發人員能夠編寫數據庫應用程序,同時,JDBC 也是個商標名。

二、JDBC 連接數據庫的步驟

(1)利用類的反射來獲取驅動

Class.forName(driverClass)
加載 mysql 驅動:Class.forName("com.mysql.jdbc.Driver");
加載 oracle 驅動:Class.forName("oracle.jdbc.driver.OracleDriver");

(2)獲得數據庫連接對象 Connection

獲取 mysql 連接

DriverManager.getConnection("jdbc:mysql://localhost:3306/libin?useUnicode=true&characterEncoding=UTF8",user,password);

獲取 oracle 連接

DriverManager.gerConnection(URL,user,password);
DriverManager.getConnection("jdbc:oracle:thin:@localhost:1521:orcl","scott","123");

(3)創建語句

PreparedStatement ps = conn.prepareStatement(sql);

(4)執行語句得到結果集 ResultSet

ResultSet rs = ps.executeQuery();

(5)遍歷結果集 ResultSet

(6)關閉連接、釋放資源

三、連接數據的實例

創建項目、導入架包

1、連接 oracle 數據庫

package com.jdbc;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;

public class TestOracleJDBC {
    public static void main(String[] args) {
        Connection conn = null;
        try {
            // 1.加載驅動
            Class.forName("oracle.jdbc.driver.OracleDriver");
            // 2.獲取連接Connection對象
            conn = DriverManager.getConnection("jdbc:oracle:thin:@127.0.0.1:1521:orcl", "scott", "123456");
            String sql = "select * from emp";
            // 3.得到語句PreparedStatement
            PreparedStatement ps = conn.prepareStatement(sql);
            ResultSet rs = ps.executeQuery();
            // 4.遍歷結果集
            while (rs.next()) {
                System.out.println(rs.getString("EMPNO") + "\t" + rs.getString("ENAME") + "\t" + rs.getString("MGR") + "\t" + rs.getString("HIREDATE") + "\t" + rs.getString("SAL") + "\t" + rs.getString("COMM") + "\t" + rs.getString("DEPTNO"));
            }
        } catch (ClassNotFoundException e) {
            e.printStackTrace();
        } catch (SQLException e) {
            e.printStackTrace();
        } finally {
            if (conn != null) {
                try {
                    // 5.關閉連接,釋放資源
                    conn.close();
                } catch (SQLException e) {
                    e.printStackTrace();
                }
            }
        }
    }
}

2、連接 mysql 數據庫

package com.jdbc;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;

public class TestMysqlJDBC {
    private static final String url = "jdbc:mysql://localhost:3306/springmvc?useUnicode=true&" + "characterEncoding=UTF8";
    private static final String username = "root";
    private static final String password = "123456";

    public static void main(String[] args) {
        Connection conn = null;
        PreparedStatement ps = null;
        ResultSet rs = null;
        try {
            // 1.加載mysql驅動程序
            Class.forName("com.mysql.jdbc.Driver");
            // 2.獲取連接對象
            conn = DriverManager.getConnection(url, username, password);
            String sql = "select * from student";
            // 3.通過連接對象獲得ps語句
            ps = conn.prepareStatement(sql);
            rs = ps.executeQuery();
            // 4.遍歷結果集
            while (rs.next()) {
                System.out.println(rs.getInt("sno") + "\t" + rs.getString("sname") + "\t" + rs.getInt("gender") + "\t" + rs.getInt("grade") + "\t" + rs.getInt("age"));
            }
        } catch (ClassNotFoundException e) {
            e.printStackTrace();
        } catch (SQLException e) {
            e.printStackTrace();
            // 5.finally語句塊中釋放資源
        } finally {
            try {
                if (rs != null) {
                    rs.close();
                }
                if (ps != null)
                    ps.close();
                if (conn != null)
                    conn.close();
            } catch (SQLException e) {
                e.printStackTrace();
            }
        }
    }
}

四、其它鏈接

源代碼

參考資料


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM