標籤:
最近我們的JAVA課程講到資料庫,老師一直強調搭建資料庫環境(JDBC)的重要性,剛好我的電腦前段時間重裝過,也可以趁著這個機會再來回顧一遍JDBC的搭建。
說明:本文使用的JDBC架構是基於JAVA SE 1.8 & MySQL & Eclipse
工具下載:
MySQL V5.5(x64) 64位
MySQL V5.5(x86) 32位
要根據你電腦的情況選擇相應的MySQL版本。我的電腦是64位,所以本篇文章是使用64位講解的,如果有同學在使用32位版本的時候出現問題的可以隨時聯絡我。
JDBC驅動(MySQL)
MySql 視覺化檢視 Front
一.安裝配置MySQL
1.首先開啟運行mysql-5.5.29-winx64.msi(就是上面的MySQL V5.5),你會進入到安裝介面:
2.接下來。。。next->next。。。一直點擊next,當你看到這樣的介面:
這個是選擇MySQL的安裝目錄。我的習慣是開發工具一般都選擇預設的路徑。當然你想使用其他路徑也行,不過還是要提醒一點,路徑不要包含中文。
繼續next。
這個是MySQL服務的連接埠號碼,我們最好不要修改,不過要記住這個值3306。
然後next。。。歡迎你來到坑前!(我沒讓你踩呢,不急)
這個介面是設定我們MySQL系統的字元集。預設是讓我們選擇字元集”Latin1”,我就問你你知道這個是什麼字元集嗎。。。那你不要怪我孤陋寡聞,我第一次就是直接預設過去,最後發現,我的資料庫不能使用中文!會出現亂碼。然後也是折騰了好久才解決。
我們何不一開始就把問題解決呢對吧。這裡我們選擇第三項,然後選擇字元集”gbk”,這個不用解釋了吧。。。見:
繼續next。看到設定管理員帳號資訊介面了吧:
選中第一個,然後輸入密碼(建議記性不好的同學使用密碼”123456”。。。=。=)。設定好密碼之後,你登陸MySQL的帳號就是:
userName:root
password:***(你的密碼)*
接下來嘛。。。等。。。wait。。。
不過相信我這個過程不會持續很久。Done:
3.接下來,檢查下MySQL是否正確安裝:
“我的電腦”->”管理”->”服務”。查看MySQL服務是否啟動:
如果你發現你的MySQL尚未啟動,可以在”運行”中使用”net start mysql”啟動服務。然後在工作管理員中查看MySQL的運行狀態:
二.使用MySQL資料庫
我們已經成功安裝好了MySQL資料庫,那接下來就來熱熱身如何?
要使用MySQL資料庫第一步當然是要進行身分識別驗證,進入命令列介面,輸入下面的指令(如果你使安裝的時候使用的是預設的安裝路徑,一般是這個目錄,如果使用了自訂目錄就進入相應的目錄就好了),進入MySQL安裝目錄下的bin檔案夾(存放MySQL的開發工具):
cd C:\Program Files\MySQL\MySQL Server 5.5\bin
接下來進行身分識別驗證,指令如下:
mysql -u你的使用者名稱 -p你的密碼
如果登陸成功,會看到如下這樣的介面:
好了,現在可以使用MySQL資料庫了。
接下來進行如下操作:
1.建立資料庫TestJDBC:CREATE DATABASE TestJDBC;2.使用TestJDBC資料庫:USE TestJDBC;3.建立UserInfo資料表(包含屬性userName(char(10))、password(varchar(15))):CREATE TABLE UserInfo(userName char(10), password varchar(15));4.插入資料:INSERT INTO UserInfo VALUES(‘小炫‘, ‘111111‘);INSERT INTO UserInfo VALUES(‘小銘傑JJ‘, ‘222222‘);INSERT INTO UserInfo VALUES(‘小航‘, ‘333333‘);
不知道你有沒有留意到我們的SQL語句都是以”;”結尾的,這顯然不是SQL文法,我們在用DOS下操作MySQL時要求每一條語句後要帶”;”。
操作過程如下(前方高能!!!)
CREATE DATABASE TestJDBC;
USE TestJDBC;
CREATE TABLE UserInfo(userName char(10), password varchar(15));
DESC UserInfo; (查看錶結構)
INSERT INTO UserInfo VALUES(‘小炫‘, ‘111111‘);INSERT INTO UserInfo VALUES(‘小銘傑JJ‘, ‘222222‘);INSERT INTO UserInfo VALUES(‘小航‘, ‘333333‘);
現在,我們建立了一個TestJDBC資料庫,裡面有一張資料表,裡麵包含三條資料:
SELECT * FROM UserInfo
三.使用JAVA串連、操作資料庫
準備工作都搞定了,接下來進入正題啦。回到我們的老本行:使用JAVA操作資料庫。
首先我們用一張圖看清楚JDBC:
Java 資料庫連接,(Java Database Connectivity,簡稱JDBC)是Java語言中用來規範用戶端程式如何來訪問資料庫的應用程式介面,提供了諸如查詢和更新資料庫中資料的方法。JDBC是面向關係型資料庫的。簡單地說,就是用於執行SQL語句的一類Java API,通過JDBC使得我們可以直接使用Java編程來對關聯式資料庫進行操作。通過封裝,可以使開發人員使用純Java API完成SQL的執行。
我們現在對照下,至今我們所做的工作已經把最底層的資料庫搭建好了,要在JAVA程式中使用資料庫,還需要:
* JDBC磁碟機
* JDBC API
* JAVA 程式(這個是廢話嗎 -.-|||)
開始的開始,我們先在eclipse下建立一個JAVA項目(這個。。。不需要了吧。。。)
JDBC磁碟機
就是我們之前下載好的JDBC驅動(MySQL):mysql-connector-java-5.1.7-bin.jar。
其實這個是一個由MySQL資料庫提供的用來給JAVA串連MySQL資料庫的第三方庫,我們只要把這個庫匯入到我們的工程中去就好了。
1.建立使用者環境變數:
變數名:CLASSPATH變數值:;目錄:mysql-connector-java-5.1.7-bin.jar
我是把jar檔案直接放在c盤下,你當然可以放在其他地方,但還是那句,不要放在路徑含有中文字元的目錄。
2.把jar匯入JAVA工程:
“工程名”->”Build Path”->Configure Build Path
“Add Library”->選中jar檔案
添加成功之後,你會在你的項目視圖中看到這個jar:
JDBC API
關於JDBC API嘛。上課老師已經講得很清楚了。我這裡就隨便複習下。
要使用JDBC,有幾個重要的類需要知道:
//重要的類:java.sql.Connection; //資料庫連接執行個體java.sql.DriverManager; //資料庫驅動管理類,調用其靜態方法getConnection並傳入資料庫的URL獲得資料庫連接執行個體java.sql.Statement; //操作資料庫要用到的類,主要用於執行SQL語句java.sql.ResultSet; //資料庫查詢結果集
JAVA程式
下面以MySQL為例,簡單講解下JAVA程式操作資料庫的方法。
使用JDBC的步驟如下:
說明:
***JAVA工程已匯入JDBC磁碟機(jar);
考慮到資料庫安全,我把我資料庫的登陸資訊封裝起來放到了Values.java下:*
Values.java:
public class Values{ public static String DRIVER_MYSQL = "com.mysql.jdbc.Driver"; //MySQL JDBC驅動字串 public static String URL = "jdbc:mysql://localhost:3306/資料庫名?" + "user=使用者名稱&password=密碼&useUnicode=true&characterEncoding=UTF8";//資料庫Url,用來標識要串連的資料庫,其中資料庫名、使用者名稱、密碼是根據你自己的資料庫情況設定}
1.在JAVA程式中載入JDBC驅動
Class.forName(Values.DRIVER_MYSQL);
2.建立資料庫連接對象
Connection connection = DriverManager.getConnection(Values.URL);
3.建立Statement對象
Statement statement = connection.createStatement();
4.調用Statement對象相應的方法操作資料庫
下面是我用於測試資料的Demo:
TestJDBC.java:
public class TestJDBC{ private Statement statement; public TestJDBC() { try { Class.forName(Values.DRIVER_MYSQL); //載入JDBC驅動 System.out.println("Driver Load Success."); Connection connection = DriverManager.getConnection(Values.URL); //建立資料庫連接對象 statement = connection.createStatement(); //建立Statement對象 } catch (Exception e) { // TODO Auto-generated catch block e.printStackTrace(); } } /* * 根據sql查詢資料庫,返回一個結果集 * 輸 入:SQL語句 * 傳回值:ResultSet 查詢結果 */ public ResultSet query(String sql) { ResultSet result = null; try { result = statement.executeQuery(sql); } catch (SQLException e) { // TODO Auto-generated catch block e.printStackTrace(); } return result; } /* * 列印UserInfo表的資料 * 輸 入:結果集(資料表) * 傳回值:空 */ public void printUserInfo(ResultSet result) { try { while(result.next()) { System.out.println("userNname:" + result.getString(1) + ", password:" + result.getString(2)); } } catch (SQLException e) { // TODO Auto-generated catch block e.printStackTrace(); } } /* * 執行資料操作 * 輸 入:SQL語句 * 傳回值:空 */ public void executeSql(String sql) { try { statement.execute(sql); } catch (SQLException e) { // TODO Auto-generated catch block e.printStackTrace(); } } public static void main(String[] args) { // TODO Auto-generated method stub String sql = "SELECT * FROM UserInfo"; TestJDBC db = new TestJDBC(); ResultSet result = db.query(sql); db.printUserInfo(result); }}
看看上面我們做了什麼,首先我們把操作JDBC的準備工作放在了構造方法中,一旦我們建立了TestJDBC對象,就獲得了資料庫連接和一個對應的Statement對象。然後是在類中定義了三個方法:
* ResultSet query(String sql)
* void executeSql(String sql)
* void printUserInfo(ResultSet result)
這幾個方法都是封裝了JDBC API之後用來操作資料庫用的,具體的功能在代碼上已經注釋好。在主函數中,我們首先建立了一個TestJDBC對象,之後執行查詢語句,獲得UserInfo表的所有資料並列印出來。運行程式,得到下面的結果:
現在我們在主函數中加入插入資料的代碼:
public static void main(String[] args) { // TODO Auto-generated method stub String sql = "SELECT * FROM UserInfo"; TestJDBC db = new TestJDBC(); db.executeSql("INSERT INTO UserInfo VALUES(‘小明‘, ‘666666‘)"); //插入一條資料 ResultSet result = db.query(sql); db.printUserInfo(result); }
運行程式,得到下面的結果:
說明我們插入資料成功!
四.MySQL視覺化檢視MySQL-Front:使用圖形介面操作MySQL
前面我們一直是在指令操作MySQL,對於單單的插入刪除查詢資料的操作還是可以接受的,但如果要我們使用指令來用T-SQL編寫SQL程式。。。我的天!調試會死人的吧。所以我們還是要掌握下MySQL-Front的使用方法的,我確信你會更傾向於圖形操作。
首先是安裝MySQL-Front,這個就更簡單了,直接下一步,下一步。。。
安裝好之後運行MySQL-Front,要先進行一些配置,這裡就不是可以隨便改的了,這些配置要根據我們的MySQL資料庫來配置,如果我們沒有另外定義Host和連接埠號碼的話,你只要這樣設定就好了:
資料庫呢,就選擇我們之前建好的資料庫就好了,當然在裡面你也可以建立資料庫的。
開啟,進入我們的MySQL資料庫。開啟”testjdbc”我們可以看到我們之前建立的資料庫,
查看資料表的結構
查看資料表當前資料
現在我們來執行一條插入語句:
INSERT INTO UserInfo VALUES(‘小B‘, ‘555555‘)
點擊運行,接下來再看下資料表資料:
新的資料已經插入到資料表(可能你不會一下子就看到新的資料,這個時候我們只要重新整理一下。什麼!還沒看到!那肯定是你的SQL語句有錯了。)
最後我們回到之前的JAVA Demo,運行程式,結果如下:
天啊!不知不覺就完成了JDBC的搭建和測試了!
YEAH!是不是很nice!
Demo:JdbcForMySQLDemo
JAVA 訪問MySQL資料庫(使用方法及測試)