1.搭建JDBC開發環境
1.1安裝數據庫系統
MySQL是一種開放源代碼的關係型數據庫管理系統(RDBMS),使用最常用的數據庫管理語言–結構化查詢語言(SQL)進行數據庫管理。
MySQL是開放源代碼的,因此任何人都可以在General Public License的許可下下載並根據個性化的需要對其進行修改。
MySQL因爲其速度、可靠性和適應性而備受關注。大多數人都認爲在不需要事務化處理的情況下,MySQL是管理內容最好的選擇。
我個人安裝的是Mysql8.0。
以下是Mysql8.0安裝教程的相關連接(安裝到第36步即可):
https://mp.weixin.qq.com/s/BdkGg-dsDPEcJ_oaom_pLA
1.2安裝驅動程序
Java數據庫連接,(Java Database Connectivity,簡稱JDBC)是Java語言中用來規範客戶端程序如何來訪問數據庫的應用程序接口,提供了諸如查詢和更新數據庫中數據的方法。
JDBC也是Sun Microsystems的商標。我們通常說的JDBC是面向關係型數據庫的。
簡單來說,JDBC是JAVA語言和數據庫系統軟件之間的橋樑。
不同數據庫系統軟件需要下載不同的JDBC。
爲了節省大家的查找時間,我將我正在使用MySQL的JDBC驅動程序mysql-connector-java-8.0.11.jar共享給大家。
百度雲鏈接:https://pan.baidu.com/s/1luU4MwrLif_rtNhy0V6x2w
提取碼:xgc0
備用地址:https://static.runoob.com/download/mysql-connector-java-8.0.16.jar
下載完成JDBC驅動程序後,將該驅動程序mysql-connector-java-8.0.11.jar拷貝到GlassFish Server 的安裝路徑下(可以通過在net beans的工具-》服務器,看到服務器的安裝路徑)的lib子目錄下即可
2.連接數據庫
JDBC驅動有兩個類負責與數據庫建立連接。
1.DriverManager,它是JDBC API提供爲數不多的實際類之一。
2.JDBC Driver類,它是由獨立廠商提供的。
每個JDBC驅動程序使用一個專門的JDBC URL作爲自我標識的一種方法。
DriverManager通過JDBC URL來選擇正確的驅動程序。
JDBC URL的格式如下:
jdbc:子協議:數據庫定位器
子協議與JDBC驅動程序有關,可以是ODBC、Oracle、DB2等。數據庫定位器則是標識數據庫的,包括主機名、端口和數據庫系統名。
如果使用的是MySQL數據庫,那麼JDBC URL則是:
jdbc:mysql://機器名/數據庫名
如果使用的是GlassFish內置的Java DB數據庫,那麼JDBC URL則是:
jdbc:derby://機器名/數據庫名
如果使用的是Oracle數據庫,那麼JDBC URL則是:
jdbc:oracle:thin@機器名:端口名:數據庫名
以下我將通過一個實例來說明JDBC連接數據庫。首先創建web應用“DataWeb”來包含這篇博客的所有演示代碼。
1:test.jsp
<%@page contentType="text/html" pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>JSP Page</title>
</head>
<body>
<%
java.sql.Connection conn=null;
java.lang.String strConn;
try{
//myslq8.0以上需要在URLjdbc:mysql://localhost:3306/test加上?characterEncoding=utf8&useSSL=false&serverTimezone=Hongkong否則會出錯。
conn=java.sql.DriverManager.getConnection("jdbc:mysql://localhost:3306/test?characterEncoding=utf8&useSSL=false&serverTimezone=Hongkong","root","");
%>
連接mysql數據庫成功!
<%
}catch(java.sql.SQLException e){
out.println(e.toString());
}finally{
if(conn!=null) conn.close();
}
%>
</body>
</html>
程序運行結果
第一次遇到了這個錯誤,經過查詢是說mysql版本和JDBC驅動程序的版本沒有對應上。比如MySQL是8.0的話,JDBC需要mysql-connector-java-8.0.11.jar及以上JDBC版本纔可以。經過一番調整,還是沒有解決我的問題。
最後,在一篇博客上看到,是SQL連接語句的問題。mysql8.0及以上的版本需要在URL:jdbc:mysql://localhost:3306/test加上?characterEncoding=utf8&useSSL=false&serverTimezone=Hongkong否則會出錯。
mysql5.0:
conn=java.sql.DriverManager.getConnection(“jdbc:mysql://localhost:3306/test”,“root”,"");
mysql8.0:
conn=java.sql.DriverManager.getConnection(“jdbc:mysql://localhost:3306/test?characterEncoding=utf8&useSSL=false&serverTimezone=Hongkong”,“root”,"");
成功解決了上面的問題,然後又出現了一個小問題。
這個問題比較容易,在mysql查詢語句中,輸入create database test 即可。
最後終於成功了!
總結:首先調用DriverManager對象的getConnection()方法來獲取數據庫連接,getConnection()方法的第一個參數爲JDBC URL,"jdbc:mysql://localhost:3306/test?characterEncoding=utf8&useSSL=false&serverTimezone=Hongkong"代表訪問的數據庫類型爲MySQL,數據庫位於主機localhost上,數據庫名爲test,字符編碼爲UTF-8等。getConnection()方法的後兩個參數代表訪問數據庫使用的用戶名和密碼。
說明:需要特別注意的是,在數據庫使用完畢後,務必確保將數據庫連接關閉。