JDBC是什麼
JDBC就是相當於一個數據庫的管家,不管是何種數據庫,MySQL
、Oracle
等數據庫,都可以通過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
。
JDBC
的URL
格式如下:
jdbc:mysql://[host]
[:port]/[database]
[?propertyName1][=propertyValue1]
[&propertyName2][=propertyValue2]…
如果使用 MySQL
數據庫,前面都寫jdbc:mysql://
這一句,是不變的,後面再接要連接的主機名,如果是在自己機子上連接,寫localhost
即可,後面在寫一個:
,在寫端口號,一般都是3306
,然後寫一個/
,在寫數據庫的名稱。這裏我使用的數據庫名稱是school
。如果你對數據庫還不太懂,沒有一些基本概念,那麼你可以看看我前面寫的數據庫的文章:傳送門。
對於數據庫的URL
,這個是固定的,可以就那麼寫。上面的語句都是有註釋的,就不多說。
消除警告
在上面的代碼運行之後,可以可以正確得出結果,但是會發現有一條長長的紅色的字體,看圖:
清晰的看到一條紅色看不到頭的警告,警告大致意思就是沒有服務器驗證就連接SSL
,你這樣,服務器不推薦你這麼幹。那麼,知道了意思,我們如何消除呢?這就要看JDBC
的URL
格式了,這個格式,我們還沒說完,在前面所講解的基礎上,再加一個?
,再跟上一些屬性,也就完整了。由URL
格式可以看出屬性是”屬性名=屬性值”的鍵值對。這些屬性不是我們自定義的,具體可以查看這個教程。這裏我們要消除警告只要在DB_URL
變量值後面加個字符串
?useUnicode=true&characterEncoding=utf-8&useSSL=false
即可。
,在運行,就沒有警告了。
改過之後的變量:
!NoWarning](https://img-blog.csdn.net/20161202124615605)
以上就是JDBC
的簡單說明,關於具體用到的類,以後在慢慢說明。