最近我們的JAVA課程講到數據庫,老師一直強調搭建數據庫環境(JDBC)的重要性,剛好我的電腦前段時間重裝過,也可以趁着這個機會再來回顧一遍JDBC的搭建。
說明:本文使用的JDBC框架是基於JAVA SE 1.8 & MySQL & Eclipse
工具下載:
MySQL V5.5(x64) 64位
MySQL V5.5(x86) 32位
要根據你電腦的情況選擇相應的MySQL版本。我的電腦是64位,所以本篇文章是使用64位講解的,如果有同學在使用32位版本的時候出現問題的可以隨時聯系我。
一.安裝配置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