您好,登錄后才能下訂單哦!
原文來自搬磚工,如需轉載請注明出處
我們常用的是java的JDBC,因此這里就以JDBC為例總結一下java數據庫操作常用的一些內容
一、數據庫驅動加載
首先,我們知道JDBC是以java數據庫驅動為主要實現機制進行數據庫操作的,每個類型的數據庫都有不同的數據庫驅動。常用的數據庫驅動加載如下:(驅動可到官網下載)
1.Oracle8/8i/9iO數據庫(thin模式)
Class.forName("Oracle.jdbc.driver.OracleDriver").newInstance();
2.mysql數據庫
Class.forName("com.mysql.jdbc.Driver").newInstance();
3.DB2數據庫
Class.froName("com.ibm.db2.jdbc.app.DB2Driver").newInstance();
4.Sql Server數據庫
Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver"); //Sql Server7.0/2000數據庫 Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver"); //Sql Server2005/2008數據庫
二、建立連接
數據庫操作先需要與數據庫建立連接,然后從數據庫中讀取我們需要的數據
1.Oracle8/8i/9iO數據庫(thin模式)
String url="jdbc:oracle:thin:@localhost:1521:orcl"; String user="root"; String password="root"; Connection conn=DriverManager.getConnection(url,user,password);
2.mysql數據庫
String url="jdbc:mysql://localhost:3306/testDB?user=root&password=root&useUnicode=true&characterEncoding=gb2312"; Connection conn=DriverManager.getConnection(url);
3.DB2數據庫
String url="jdbc:db2://localhost:5000/sample"; String user="amdin" String password=-""; Connection conn=DriverManager.getConnection(url,user,password);
4.Sql Server數據庫
String url="jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=pubs"; String user="sa"; String password=""; Connection conn=DriverManager.getConnection(url,user,password);
三、執行SQL語句
根據條件進行數據庫操作
//建立Statement對象 Statement stmt=conn.createStatement(); //建立PreparedStatement對象 String sql="select * from user where userName=? and password=?"; PreparedStatement pstmt=Conn.prepareStatement(sql); pstmt.setString(1,"root"); pstmt.setString(2,"root"); //做好準備工作之后就可以執行sql語句了,執行sql語句: String sql="select * from users"; ResultSet rs=stmt.executeQuery(sql); //執行動態SQL查詢 ResultSet rs=pstmt.executeQuery(); //執行insert update delete等語句,先定義sql stmt.executeUpdate(sql);
四、處理結果集
把數據庫查詢出來的數據進行處理,得到我們需要的內容
while(rs.next) { System.out.println("你的第一個字段內容為:"+rs.getString("Name")); System.out.println("你的第二個字段內容為:"+rs.getString(2)); }
五、關閉數據庫連接
操作完數據庫一定要記得關閉數據庫連接,不然不造成資源浪費。當連接達到一定數目的時候,讀取數據庫速度將會降低。
依次將ResultSet、Statement、PreparedStatement、Connection對象關閉,釋放所占用的資源.
rs.close(); stmt.clost(); pstmt.close(); con.close();
六、數據庫事務
事務是現代數據庫理論中的核心概念之一。如果一組處理步驟或者全部發生或者一步也不執行,我們稱該組處理步驟為一個事務。當所有的步驟像一個操作一樣被完整地執行,我們稱該事務被提交。由于其中的一部分或多步執行失敗,導致沒有步驟被提交,則事務必須回滾到最初的系統狀態。
事務必須服從ISO/IEC所制定的ACID原則。
什么是ACID原則?
ACID是原子性(atomicity)、一致性(consistency)、隔離性 (isolation)和持久性(durability)的縮寫。
1.事務的原子性表示事務執行過程中的任何失敗都將導致事務所做的任何修改失效。
2.一致性表示 當事務執行失敗時,所有被該事務影響的數據都應該恢復到事務執行前的狀態。
3.隔離性表示在事務執行過程中對數據的修改,在事務提交之前對其他事務不可見。
4.持久性表示當系統或介質發生故障時,確保已提交事務的更新不能丟失。持久性通過數據庫備份和恢復來保證。
JDBC 事務是用 Connection 對象控制的。JDBC Connection 接口( java.sql.Connection )提供了兩種事務模式:自動提交和手工提交。
java.sql.Connection 提供了以下控制事務的方法:
public void setAutoCommit(boolean) public boolean getAutoCommit() public void commit() public void rollback()
使用 JDBC 事務界定時,您可以將多個 SQL 語句結合到一個事務中。JDBC 事務的一個缺點是事務的范圍局限于一個數據庫連接。一個 JDBC 事務不能跨越多個數據庫。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。