今天來聊一下用Java連接MySQL數據庫之JDBC,初學JDBC,所以理解上也沒有那麼的透徹,如有錯誤,還請多多指正。
一、首先要有的兩個東西
1、 MySQL數據庫的驅動類,我用的是這個版本的mysql-connector-java-5.0.3-bin.jar
2、異常處理的知識。如果異常處理的知識不太懂的話,可以看我的一個博客哦,那裏有詳細的講【一個不明顯的廣告哈哈】送上網址就是它啦
二、其次是JDBC的三個對象
- Connection 連接數據庫
- Statement 語句對象,發送sql語句到數據庫中,起到交互的作用,它的交互方式分爲兩種:
(1)dml 就是俗稱的增刪改,它返回的是整數,影響的行數
(2)dql 就是查 select,查到的結果用ResultSet來接收 - ResultSet 接收 statement 對象發送 select 的結果
Connection conn;//建立和數據庫的連接
Statement stmt;//發送sql語句
ResultSet rs;//接收結果
注意:這三的順序不能反了,那爲什麼是這個順序呢,這裏打個比方,可以把Java和數據庫看成是兩個城市A和B,在A和B城建一個a-b橋,而這個橋就相當於Connection對象,在橋上面可以跑貨車,這個貨車就相當於Statement對象,貨物就可以看成要發送的sql語句,貨物送到B城了,從B城拿回來的錢就相當於ResultSet對象。
三、然後就是JDBC的三個參數
String url = "jdbc:mysql://localhost:3308/你自己的數據庫名字";
String username = "root";
String password = "mysql";
1、這裏的密碼是你MySQL數據庫的密碼,如果很不湊巧的忘記了,不要擔心,我的另一篇博客,詳細的記錄瞭解決方法,【親測有效哦】送上網址就是它啦
2、這裏的URL = ip地址 + 端口 + 庫名
瞭解了這些之後,相信你,對接下來的東西也就能很快的掌握了
四、最後是八個步驟
- 粘貼驅動到你的項目中,右鍵驅動:Build path
- 加載驅動
Class.forName("com.mysql.jdbc.Driver");//驅動的名字
- 建立連接
conn = DriverManager.getConnection(url,username,password);//三個參數
- 創建語句對象
stmt = conn.createStatement();
- 寫sql語句
String sql = "update books set bauthor = '關宏峯' where id = 1";//這裏看看就好
- 發送sql ,有兩種形式
1、 int i = executeupdate(這裏是insert delete update的sql語句) ; 返回的是受影響的行數
2、ResultSet rs = executequery(這裏是select的sql語句); 返回的是結果
- 處理結果集,會用rs,這裏的內容我在下一個博客中寫,到時候會給一個鏈接的。
- 關閉 jdbc 資源,它十分佔用內存(%90性能問題都來自於數據庫的交互)
1、先建的橋,再通的車,最後拿到的錢
2、那麼關閉資源的時候,就要反過來,先 rs ,再 stmt,最後 conn
rs.close();
stmt.close();
conn.close();
五、最後的代碼
public class TestJDBC {
public static void main(String[] args) throws Exception {
Connection conn;//建立和數據庫的連接
Statement stmt;//發送sql語句
ResultSet rs;//接收結果
//參數:ip地址+端口+庫名 == url 用戶 root 密碼 mysql
String url = "jdbc:mysql://localhost:3308/crx654";
String username = "root";
String password = "mysql";
//粘貼驅動,Build path
//加載驅動類
Class.forName("com.mysql.jdbc.Driver");
//建立連接
conn = DriverManager.getConnection(url,username,password);
//創立sql語句
String sql = "update books set bauthor = '關宏峯' where id = 1";
//創建語句對象
stmt = conn.createStatement();
//執行sql語句
boolean bol = stmt.execute(sql);
//處理結果
System.out.println(bol); //出現false
//釋放資源
stmt.close();
conn.close();
}
}
注:這裏我沒用到 rs 結果集,所以就沒有釋放資源
好啦,到這裏就結束了,謝謝觀看,如有什麼錯誤,還請多多指正。