在實際使用的應用程序中,大部分是需要利用數據庫進行數據的查詢與操作,因為數據庫支持強大的sql語句,可進行事務處理等。接下為大家介紹如何在Java應用程序中使用JDBC提供的API和數據庫進行信息交付。
首先是需要安裝好mysql數據庫,把安裝好的數據庫安裝好,建立好數據庫、創建表后,還需要通過JDBC來操作數據庫。
Java通過使用JDBC提供的API來操作數據庫,JDBC操作不同的數據庫僅僅是連接方式上的差異而已,使用JDBC的應用程序和數據庫建立聯系后就可以對它進行操作了。
使用JDBC需要如下操作:
立即學習“Java免費學習筆記(深入)”;
·與數據庫建立連接
·向已經連接的數據庫發送SQL語句
·處理SQL語句返回的結果
MySQL數據庫服務啟動后,必須先和數據庫服務器上的數據庫建立連接。Java使用JDBC調用本地的JDBC-數據庫驅動和相應的數據庫建立連接。Java運行環境將JDBC數據庫驅動轉換為DBMS(數據庫管理系統)所使用的專用協議來實現和特定的DBMS交互信息,如下圖:
使用JDBC-數據庫驅動方式和數據庫建立連接需要經歷兩個步驟:
(1) 加載JDBC-數據庫驅動
(2) 和指定的數據庫建立連接
先下載JDBC-MySQL數據庫驅動,JDBC下載網址:
https://dev.mysql.com/downloads/file/?id=474258。將下載的zip文件解壓,找到里面的mysql-connector-java-5.1.45-bin.jar文件,把它復制到JDK的擴展目錄中,例如我的是 D:StudyJava1.8.0jrelibext目錄下。
相關推薦:《Navicat for mysql使用圖文教程》
同時因為在安裝JDK時會額外有一個JRE,最好將mysql-connector-java-5.1.45-bin.jar文件復制到那個目錄,我的是D:StudyJRE1.8.0libext目錄中,保證及時啟用該環境運行程序,也會有需要的驅動。
接下來就是加載JDBC-MySQL數據庫驅動了,代碼如下:
try?{?? Class.forName("com.mysql.jdbc.Driver");?? }? catch?(Excepton?e)?{?}
MySQL數據庫驅動被封裝在Driver類中,包名為com.mysql.jdbc,它不是Java運行環境類庫中的類,所以需要放置在jre的擴展目錄中。
java.sql包中的DriverManager類有兩個用于建立連接的類方法(Static方法):
·Connection getConnection(java.lang.String,java.lang.String,java.lang.String)
·Connection getConnection(java.lang.String)
在電腦中找到MySQL Notifier運行它,然后在任務欄右擊它的圖標,選擇MySQL57-Stopped–>Start啟動數據庫
接著打開navicat for MySQL,打開連接,和數據庫服務器建立連接后,右擊連接名選擇”新建數據庫”命令,在彈出的對話框中填入相應信息,如下所示,建立名為Study的數據庫。
建立好數據庫后,右擊Study下的”表”選擇”新建表”,填入相應的列名和列名的各種屬性,
點擊保存,輸入表名進行保存,再雙擊表名,填入相應的各類信息,添加新行,點擊”+”。
接下來,用一個小小的程序來測試一下對數據庫的查詢操作。
新建一個Java工程,代碼如下:
import? java.sql.*;public?class?MysqlTest?{?public?static?void?main(String[]?? args)?{?//加載JDBC-MySQL驅動?try?{?Class.forName("com.mysql.jdbc.Driver");?}? catch?(Exception?e)?{}?? //同數據庫建立連接,其中ip地址后的3306是端口號,study是數據庫名稱,加上用戶名和密碼等信息?//設置useSSL為true?? //如果表中記錄有漢字,請加上characterEncoding參數,取值為gb2312或utf-8?Connection?con?=?? null;?String?uri?=?? "jdbc:mysql://192.168.199.240:3306/study?user=root&password=****&useSSL=true&characterEncoding=utf-8";? try?{?con?=?DriverManager.getConnection(uri);?//連接代碼?}?catch?? (SQLException?e)?{?System.out.println(e);?}?//向數據庫發送SQL查詢語句?try?{?? Statement?sql?=?con.createStatement();?//聲明并創建SQL語句對象?ResultSet?rs?=?? sql.executeQuery("SELECT?*?FROM?test");?//查詢test表?? System.out.println("查詢結果:");?while?(rs.next())?{?//循環讀取表test每行的數據并輸出?? String?number?=?rs.getString(1);?String?name?=?rs.getString(2);?Date?? date?=?rs.getDate(3);?float?height?=?rs.getFloat(4);?? System.out.printf("%s???",number);?System.out.printf("%s????",name);?? System.out.printf("%s???",date);?System.out.printf("%s??",height);?? System.out.println();?}?con.close();?//關閉數據庫連接?}?catch?(SQLException?e)?{? ?System.out.println(e);?}?}}
運行這個程序,輸出結果如下:
至此,Java連接MySQL數據庫成功,并實現了順序查詢。