猶記當年爲了使用java程序鏈接mysql數據庫花費一天時間,最後發現是沒有導入外包,現在看來真的發現本身那時有點二,也怪我使用的教科書上沒有說明這點(強行甩鍋,哈哈)。今天分享出來,,但願後者不由於這點小問題而大費周章。java
首先說下數據庫,數據庫在操做系統看來其實就是一個服務,mysql在windows服務中叫mysql服務,sqlserver叫sqlserver服務(咱們在任務管理器中能夠在服務一項中找到咱們裝到本身機器上的數據庫服務),咱們使用的toad for mysql等叫數據庫管理工具,他們的完成的功能其實就是經過咱們的一些點擊建立數據庫等操做向數據庫服務發送sql語句從而完成對數據庫的建立庫等操做,因此從這個方面看來其實咱們本身也能夠寫一個簡單的數據庫管理工具。mysql
不一樣的數據庫和java程序鏈接時使用的驅動不同,這兒驅動不是由java所屬公司提供,而是有java公司提供鏈接接口,各個數據庫廠商根據本身的數據庫特性來寫所需的驅動程序(如com.mysql.jdbc.Driver是mysql鏈接時用的驅動由Oracle公司提供,mysql如今屬於oracle了),而java所需完成的操做就是使用鏈接接口來完成驅動程序的加載以及後期的交互任務。因此要想使用java程序鏈接數據庫第一件事就是去相應數據庫公司官網下載相應的jar包(這個很重要,當時我就是由於這個搗鼓了一天)。mysql和sqlserver要用到的jar包我已上傳到個人GitHub上了,能夠下載(https://github.com/huangxinyuan650/ConnectDatabase/tree/master/extendpackage)git
在有了相應的jar包以後剩下的就是比較有序的操做了,除了加載的驅動不同剩下的都與數據庫的種類無關(固然在涉及到讀取的細節上會有稍微的區別在後期會講到),以後的操做就是github
注意在鏈接前須要把鏈接數據庫的 jar包提早導入到工程下或者直接放到jdk的lib下。sql
1.使用調用Class類加載驅動(Class.forName(驅動類名路徑);),數據庫
2.經過DriverManager接口獲取數據庫鏈接對象(Connection conn=DriverManager.getConnection(鏈接字符串,用戶名,密碼);),windows
3.至此已經創建起了與數據庫的鏈接,接下來就是獲取對數據庫操做須要使用到的對象Statement(Statement state = conn.createStatement();)後端
4.經過statement對象完成對數據庫的操做(Query和Update操做,數據庫的增刪改都是update,查爲query),固然在完成查詢操做的時候是須要ResultSet對象來接收查詢的結果的(ResultSet re=conn.state.executeQuery(cmd);)oracle
完整的鏈接類咱們能夠本身概括出來,方便之後直接調用(鏈接mysql數據庫完整代碼)工具
package hxy; import java.sql.Connection; import java.sql.DriverManager; import java.sql.SQLException; import java.sql.Statement; public class ConnectMySQL { Connection conn = null; Statement state = null; public ConnectMySQL(){ try{ ///////連接數據庫 Class.forName("com.mysql.jdbc.Driver"); //////加載數據庫驅動 } catch(ClassNotFoundException e){ System.out.println(e); } try{ conn=DriverManager.getConnection("jdbc:mysql://localhost:3306/databasedata", "root", "huang650");
//獲取數據庫鏈接對象,其中getConnection方法中第一個參數爲鏈接字符串裏面包含數據庫url和端口號,第二個參數爲數據庫用戶名,第三個參數爲數據庫密碼 System.out.println("You has connected to Mysql!!!"); state=conn.createStatement(); //////////獲取對數據庫的操做對象Statement } catch(SQLException e){ System.out.print(e); } } void close(){ try { conn.close(); } catch (SQLException e) { e.printStackTrace(); } } }
在獲取到statement對象後就是經過statement對象完成對數據庫的操做,固然在使用完後須要關閉與數據庫的鏈接。
在鏈接sqlserver數據庫的時候只須要把驅動的路徑改成com.microsoft.sqlserver.jdbc.SQLServerDriver,而後端口號改成1433,鏈接字符串前面改爲jdbc:sqlserver便可。
Oracle數據庫的話好像是有兩種鏈接方式,但原理都是差很少的,有需求的能夠自行百度解決,至於詳細的對數據庫的操做能夠直接寫傳參數到數據庫操做對象的方法中,在以後的隨筆中還會詳細介紹。使用的詳細代碼在個人GitHub中的項目中都有,有興趣的能夠去看看,歡迎批評指正。https://github.com/huangxinyuan650/ConnectDatabase