1.JDBC介紹
什么是JDBC?
JDBC是為java開發者使用資料庫提供了統一的編程介面,它由一組java類和介面組成,是java程式與資料庫系統通信的標準API,
JDBC API使得開發人員可以使用純java的方式來連接資料庫,并執行操作,
為什么使用JDBC?
sun公司不知道主流資料庫的程式代碼,無法提供代碼連接資料庫,因此,sun自己提供api,
凡是想與java連接的資料庫,資料庫廠商自己必須實作jdbc這套介面,而資料庫場廠商的jdbc實作
也就是資料庫的資料庫驅動,
2.JDBC流程
1.加載Drivet驅動
加載JDBC驅動是通過呼叫方法java.lang.Class.forName()
加載陳述句的形式 :
Class.forName(“oracle.JDBC.driver.OracleDriver”);//使用Oracle的JDBC驅動程
Class.forName(“com.microsoft.JDBC.sqlserver.SQLServerDriver”);//使用SQL Server的JDBC驅 動程式
Class.forName(“com.ibm.db2.JDBC.app.DB2Driver”);//使用DB2的JDBC驅動程式
Class.forName("com.mysql.JDBC.Driver");//使用MySql的JDBC驅動程式
2.創建資料庫連接
與資料庫建立連接的方法是呼叫DriverManager.getConnection(String url, String user, String password )方法
DriverManager介面是JDBC的管理層,作用于用戶和驅動程式之間,跟蹤可用的驅動程式,并在資料庫和相應的驅動程式之間建立連接,
連接MySql資料庫:Connection con= DriverManager.getConnection("jdbc:mysql://host:port/database", "user", "password");
連接Oracle資料庫:Connection con= DriverManager.getConnection("jdbc:oracle:thin:@host:port/database", "user", "password");
注:連接物件內部其實包含了Socket物件,是一個遠程的連接,比較耗時!這是Connection物件管理的一個要點!真正開發中,為了提高效率,都會使用連接池來管理連接物件!

3.創建Statement發送命令,發送SQL陳述句并獲取結果
Statement介面:Statement物件用于將 SQL 陳述句發送到資料庫中,或者理解為執行sql陳述句
有三種 Statement物件:
1.Statement:用于執行不帶引數的簡單SQL陳述句;
2.PreparedStatement(最常用)(從 Statement 繼承):用于執行帶或不帶引數的預編譯SQL陳述句;
3.CallableStatement(從PreparedStatement 繼承):用于執行資料庫存盤程序的呼叫
常用Statement方法:
1.ResultSet executeQuery(String sql):可以執行插入、洗掉、更新等操作,回傳值是執行該操作所影 響的行數
2.boolean execute(String sql):可以執行任意SQL陳述句,然后獲得一個布林值,表示是否回傳 ResultSet
3.int executeUpdate(String sql):執行SQL查詢并獲取到ResultSet物件
例:


4.處理結果
ResultSet物件是executeQuery()方法的回傳值,它被稱為結果集,它代表符合SQL陳述句條件的 所有行,并且它通過一套getXXX方法(這些get方法可以訪問當前行中的不同列)提供了對這 些行中資料的訪問,
ResultSet里的資料一行一行排列,每行有多個欄位,且有一個記錄指標,指標所指的資料行 叫做當前資料行,我們只能來操作當前的資料行,
我們如果想要取得某一條記錄,就要使用 ResultSet的next()方法 ,如果我們想要得到ResultSet里的所有記錄,就應該使用while回圈,
ResultSet物件自動維護指向當前資料行的游標,每呼叫一次next()方法,游標向下移動一行,
初始狀態下記錄指標指向第一條記錄的前面,通過next()方法指向第一條記錄,回圈完畢后 指向最后一條記錄的后面,
常用方法:
1.boolean next():將游標從當前位置向下移動一行
2.boolean previous():游標從當前位置向上移動一行
3.void close():關閉ResultSet 物件
4.xxx getxxx(xxx colIndex):以xxx形式獲取結果集當前行指定列號值
5.xxx getxxx(String colLabel) 以xxx形式獲取結果集當前行指定列名值
例:

5.關閉資料庫資源
作為一種好的編程風格,應在不需要Statement物件和Connection物件時顯式地關閉它們,
關閉Statement物件和Connection物件的語法形式為: public void close() throws SQLException
用戶不必關閉ResultSet,當它的 Statement 關閉、重新執行或用于從多結果序列中獲取下一 個結果時,該ResultSet將被自動關閉,
注:
要按先ResultSet結果集,后Statement,最后Connection的順序關閉資源,
因為 Statement和ResultSet是需要連接是才可以使用的,
所以在使用結束之后有可能其他的 Statement還需要連接,所以不能先關閉Connection,
一定要將三個trycatch塊,分開寫!

轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/100245.html
標籤:Java
上一篇:PC端如何接收USB傳上來的資料
