jdbc連線MySQL資料庫的簡單應用

2021-07-15 01:55:13 字數 1722 閱讀 5146

jdbc連線mysql資料庫和連線oracle資料庫大體步驟一樣,首先載入資料庫驅動包,然後建立資料庫連線,接著執行sql語句,最後返回結果集。但連線mysql我們需要匯入的驅動包是mysql-connector.jar。

接下來通過乙個demo完成從控制台輸入資料庫的使用者名稱和密碼進行連線mysql,並建立student表,實現插入和查詢功能!

建立demo類,並匯入mysql-connector.jar。通過class.forname("com.mysql.jdbc.driver");

或者 com.mysql.jdbc.driver driver = new com.mysql.jdbc.driver();

或者new com.mysql.jdbc.driver();   進行載入驅動。

通過drivermanager.getconnection("jdbc:mysql://localhost:3306/student",uname,psw);建立連線

建立statement物件,並通過executeupdate(sql),executequery(sql)等方法進行資料建立和查詢

通過迴圈遍歷結果集,最後關閉連線

具體**如下:

public static void main(string args) throws exception

}} catch (exception e) finally

}

注意:本文中用的statement物件進行sql語句執行,但是在真實專案中我們已經用preparedstatement代替了該物件,原因如下: 1、

preparedstatement

介面繼承

statement

,preparedstatement 例項包含已編譯的 sql 語句,

所以其執行速度要快於 statement 物件。

2、作為 statement 的子類,preparedstatement 繼承了 statement 的所有功能。三種方法

execute、 executequery 和 executeupdate 已被更改以使之不再需要引數

3.最重要的一點是極大地提高了安全性.

即使到目前為止,仍有一些人連基本的惡義sql語法都不知道.

string sql = "select * from tb_name where name= '"+varname+"' and passwd='"+varpasswd+"'";

如果我們把[' or '1' = '1]作為varpasswd傳入進來.使用者名稱隨意,看看會成為什麼?

select * from tb_name = '隨意' and passwd = '' or '1' = '1';

因為'1'='1'肯定成立,所以可以任何通過驗證.更有甚者:

把[';drop table tb_name;]作為varpasswd傳入進來,則:

select * from tb_name = '隨意' and passwd = '';drop table tb_name;有些資料庫是不會讓你成功的,但也有很多資料庫就可以使這些語句得到執行.

而如果你使用預編譯語句.你傳入的任何內容就不會和原來的語句發生任何匹配的關係.只要全使用預編譯語句,你就用不著對傳入的資料做任何過慮.而如果使用普通的statement,有可能要對drop,;等做費盡心機的判斷和過慮.

最後關於專案開發中使用preparedstatement物件可以參閱本人《jdbc實現oracle資料庫連線的簡單案例》這篇文章!

jdbc 連線mysql資料庫

class.forname org.postgresql.driver newinstance 裝載資料庫驅動 string url jdbc postgresql localhost 5432 postgres connection con drivermanager.getconnection ...

JDBC 連線MYSQL資料庫

1.載入驅動 class.forname com.mysql.jdbc.driver com.mysql.jdbc 包名 driver 驅動名,驅動包需要引入進來 mysql com.mysql.jdbc.driver oracle oracle.jdbc.driver.oracledriver s...

JDBC連線MySQL資料庫

在學習jdbc過程中,用idea連線資料庫時出現的問題記錄,來來回回找了好多資料,現在把相應的解決辦法記錄下來。通過localhost連線mysql資料庫時,可能會遇到時區的問題,簡單設定一下就可以了,但是通過localhost一般都是可以連上的。string url jdbc mysql loca...