JDBC簡單入門_JDBC小例子

JDBC是什麼

JDBC就是相當於一個數據庫的管家,不管是何種數據庫,MySQLOracle
等數據庫,都可以通過JDBC來統一對各種不同的數據庫進行操作。這就相當方
便了,這時,你就不必爲每個數據庫程序寫一個專門的程序進行連接、操作等,
這都可以通過JDBC來完成。也是體現了java ”一次編寫到處運行“的特性。

在程序中連接上數據庫

我的筆記本使用的是MySQL的數據庫,就使用MySQL來說明。
首先,要連上數據庫,你在電腦上應該已經安裝好了MySQL,點擊這裏下載進行安裝即可。這裏就不贅述了。

首先,要在程序中連接數據庫對其進行操作,我們還需要下載驅動Connector/J 5.1.40,現在的版本是5.1.40,。我們在程序中要使用這個驅動進行數據庫的連接。把下載的壓縮文件解壓放到當前目錄,使用IDE(這裏使用的是Eclipse)來新建一個項目,在新建一個類MySQLDemo,建好之後,再引入剛剛解壓的文件裏的jar包。建好的工程目錄如下:
工程目錄

其中`Referenced Libraries裏面的就是引入的`JDBC`驅動

貼的代碼如下
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import com.mysql.jdbc.Connection;
import com.mysql.jdbc.Statement;

public class MySQLDemo {

    // JDBC 驅動名及數據庫 URL
    static final String JDBC_DRIVER = "com.mysql.jdbc.Driver";  
    static final String DB_URL = "jdbc:mysql://localhost:3306/school";


    // 數據庫的用戶名與密碼,需要根據自己的設置
    static final String USER = "root";
    static final String PASS = "toor";

    public static void main(String[] args) {
        Connection conn = null;
        Statement stmt = null;
        try{
            // 註冊 JDBC 驅動
            //把Driver類裝載進jvm
            Class.forName("com.mysql.jdbc.Driver");

            // 打開鏈接
            System.out.println("連接數據庫...");
            conn = (Connection) DriverManager.getConnection(DB_URL,USER,PASS);

            // 執行查詢
            System.out.println(" 實例化Statement對...");
            stmt = (Statement) conn.createStatement();
            String sql;
            sql = "SELECT id, name, math, english, chinese, phone FROM score";
            ResultSet rs = stmt.executeQuery(sql);

            while(rs.next()){
                // 通過字段檢索
                int id  = rs.getInt("id");
                String name = rs.getString("name");
                int math = rs.getInt("math");
                int chinese = rs.getInt("chinese");
                int english = rs.getInt("english");
                String phone =rs.getString("phone");
                // 輸出數據
                System.out.print("ID: " + id);
                System.out.print(", 名字: " + name);
                System.out.print(", 數學: " + math);
                System.out.print(", 語文: " + chinese);
                System.out.print(",英語: " + english);
                System.out.print(", 手機號碼:" + phone);
                System.out.print("\n");
            }
            String inert = "insert into score (name, math, chinese, english,phone) values(\"jom\", 100, 90, 78, \"1238649798\")";
            int i = stmt.executeUpdate(inert);
            // 完成後關閉
            rs.close();
            stmt.close();
            conn.close();
        }catch(SQLException se){
            // 處理 JDBC 錯誤
            se.printStackTrace();
        }catch(Exception e){
            // 處理 Class.forName 錯誤
            e.printStackTrace();
        }finally{
            // 關閉資源
            try{
                if(stmt!=null) stmt.close();
            }catch(SQLException se2){
            }// 什麼都不做
            try{
                if(conn!=null) conn.close();
            }catch(SQLException se){
                se.printStackTrace();
            }
        }
        System.out.println("Goodbye!");
    }
}

首先,定義了兩個靜態常量來保存數據庫的DB_URL和數據庫驅動字符串JDBC_Driver
JDBCURL格式如下:

jdbc:mysql://[host]
[:port]/[database]
[?propertyName1][=propertyValue1]
[&propertyName2][=propertyValue2]…

如果使用 MySQL數據庫,前面都寫jdbc:mysql://這一句,是不變的,後面再接要連接的主機名,如果是在自己機子上連接,寫localhost即可,後面在寫一個:,在寫端口號,一般都是3306,然後寫一個/,在寫數據庫的名稱。這裏我使用的數據庫名稱是school。如果你對數據庫還不太懂,沒有一些基本概念,那麼你可以看看我前面寫的數據庫的文章:傳送門
對於數據庫的URL,這個是固定的,可以就那麼寫。上面的語句都是有註釋的,就不多說。

消除警告

在上面的代碼運行之後,可以可以正確得出結果,但是會發現有一條長長的紅色的字體,看圖:
Warning
清晰的看到一條紅色看不到頭的警告,警告大致意思就是沒有服務器驗證就連接SSL,你這樣,服務器不推薦你這麼幹。那麼,知道了意思,我們如何消除呢?這就要看JDBCURL格式了,這個格式,我們還沒說完,在前面所講解的基礎上,再加一個?,再跟上一些屬性,也就完整了。由URL格式可以看出屬性是”屬性名=屬性值”的鍵值對。這些屬性不是我們自定義的,具體可以查看這個教程。這裏我們要消除警告只要在DB_URL變量值後面加個字符串

?useUnicode=true&characterEncoding=utf-8&useSSL=false

即可。
NoWarning,在運行,就沒有警告了。
改過之後的變量:
!NoWarning](https://img-blog.csdn.net/20161202124615605)

以上就是JDBC的簡單說明,關於具體用到的類,以後在慢慢說明。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章