国产美女一级毛片精品久久久|婷婷影院在线综合免费视频|最新国产午夜精品视频成人|久久精品九九无码免费

java數(shù)據(jù)庫操作

來源:長沙北大青鳥大計校區(qū)|發(fā)布時間:2015-07-21 14:30:26

       數(shù)據(jù)庫訪問幾乎每一個稍微成型的程序都要用到的知識,怎么高效的訪問數(shù)據(jù)庫也是我們學習的一個重點,今天的任務就是總結java訪問數(shù)據(jù)庫的方法和有關API,java訪問數(shù)據(jù)庫主要用的方法是JDBC,它是java語言中用來規(guī)范客戶端程序如何來訪問數(shù)據(jù)庫的應用程序接口,提供了諸如查詢和更新數(shù)據(jù)庫中數(shù)據(jù)的方法,下面我們就具體來總結一下JDBC

一:Java訪問數(shù)據(jù)庫的具體步驟:

1 加載(注冊)數(shù)據(jù)庫
 驅動加載就是把各個數(shù)據(jù)庫提供的訪問數(shù)據(jù)庫的API加載到我們程序進來,加載JDBC驅動,并將其注冊到DriverManager中,每一種數(shù)據(jù)庫提供的數(shù)據(jù)庫驅動不一樣,加載驅動時要把jar包添加到lib文件夾下,下面看一下一些主流數(shù)據(jù)庫的JDBC驅動加裁注冊的代碼:
//Oracle8/8i/9iO數(shù)據(jù)庫(thin模式)
Class.forName("oracle.jdbc.driver.OracleDriver").newInstance();
//Sql Server7.0/2000數(shù)據(jù)庫   Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver");
//Sql Server2005/2008數(shù)據(jù)庫   Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
//DB2數(shù)據(jù)庫
Class.froName("com.ibm.db2.jdbc.app.DB2Driver").newInstance();  
//MySQL數(shù)據(jù)庫  Class.forName("com.mysql.jdbc.Driver").newInstance();
//PostgreSQL數(shù)據(jù)庫 Class.forName("com.postgresql.jdbc.Driver").newInstance();

2 建立鏈接   
建立數(shù)據(jù)庫之間的連接是訪問數(shù)據(jù)庫的必要條件,就像南水北調調水一樣,要想調水首先由把溝通的河流打通。建立連接對于不同數(shù)據(jù)庫也是不一樣的,下面看一下一些主流數(shù)據(jù)庫建立數(shù)據(jù)庫連接,取得Connection對象的不同方式:
//Oracle8/8i/9i數(shù)據(jù)庫(thin模式)
 String url="jdbc:oracle:thin:@localhost:1521:orcl";
 String user="scott";
 String password="tiger";
 Connection conn=DriverManager.getConnection(url,user,password);

 //Sql Server7.0/2000/2005/2008數(shù)據(jù)庫
 String url="jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=pubs";
 String user="sa";
 String password="";
 Connection conn=DriverManager.getConnection(url,user,password);

 //DB2數(shù)據(jù)庫
 String url="jdbc:db2://localhost:5000/sample";
 String user="amdin"
 String password=-"";
 Connection conn=DriverManager.getConnection(url,user,password);

//MySQL數(shù)據(jù)庫
String url="jdbc:mysql://localhost:3306/testDB?user=root&password=root&useUnicode=true&characterEncoding=gb2312";
Connection conn=DriverManager.getConnection(url);


 //PostgreSQL數(shù)據(jù)庫
 String url="jdbc:postgresql://localhost:5432/postgres";
 String user="postgres"
 String password="postgres";
 Connection conn=DriverManager.getConnection(url,user,password);

3. 執(zhí)行SQL語句  
數(shù)據(jù)庫連接建立好之后,接下來就是一些準備工作和執(zhí)行sql語句了,準備工作要做的就是建立Statement對象PreparedStatement對象,例如:
//建立Statement對象
Statement stmt=conn.createStatement();
//建立PreparedStatement對象
String sql="select * from user where userName=? and password=?";
 PreparedStatement pstmt=Conn.prepareStatement(sql);
 pstmt.setString(1,"admin");
 pstmt.setString(2,"liubin");
做好準備工作之后就可以執(zhí)行sql語句了,執(zhí)行sql語句:
String sql="select * from users";
ResultSet rs=stmt.executeQuery(sql);
//執(zhí)行動態(tài)SQL查詢
ResultSet rs=pstmt.executeQuery();
//執(zhí)行insert update delete等語句,先定義sql
stmt.executeUpdate(sql);

4 處理結果集  
 訪問結果記錄集ResultSet對象。例如:
 while(rs.next)
 {
 out.println("你的第一個字段內容為:"+rs.getString("Name"));
 out.println("你的第二個字段內容為:"+rs.getString(2));
 }

5 關閉數(shù)據(jù)庫
依次將ResultSet、Statement、PreparedStatement、Connection對象關     閉,釋放所占用的資源.例如:
 rs.close();
 stmt.clost();
 pstmt.close();
 con.close();

二:JDBC事務
什么是事務:
首先,說說什么事務。我認為事務,就是一組操作數(shù)據(jù)庫的動作集合。
事務是現(xiàn)代數(shù)據(jù)庫理論中的核心概念之一。如果一組處理步驟或者全部發(fā)生或者一步也不執(zhí)行,我們稱該組處理步驟為一個事務。當所有的步驟像一個操 作一樣被完整地執(zhí)行,我們稱該事務被提交。由于其中的一部分或多步執(zhí)行失敗,導致沒有步驟被提交,則事務必須回滾到最初的系統(tǒng)狀態(tài)。
事務必須服從ISO/IEC所制定的ACID原則。ACID是原子性(atomicity)、一致性(consistency)、隔離性 (isolation)和持久性(durability)的縮寫。事務的原子性表示事務執(zhí)行過程中的任何失敗都將導致事務所做的任何修改失效。一致性表示 當事務執(zhí)行失敗時,所有被該事務影響的數(shù)據(jù)都應該恢復到事務執(zhí)行前的狀態(tài)。隔離性表示在事務執(zhí)行過程中對數(shù)據(jù)的修改,在事務提交之前對其他事務不可見。持 久性表示當系統(tǒng)或介質發(fā)生故障時,確保已提交事務的更新不能丟失。持久性通過數(shù)據(jù)庫備份和恢復來保證。
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 事務的一個缺點是事務的范圍局限于一個數(shù)據(jù)庫連接。一個 JDBC 事務不能跨越多個數(shù)據(jù)庫。

上一篇:ASP.NET編程模型之ASP.NET頁面生命周期圖解
下一篇:JAVA規(guī)則引擎 -- Drools

熱門話題

招生熱線: 4008-0731-86 / 0731-82186801

學校地址: 長沙市天心區(qū)團結路6號

Copyright © 2006 | 湖南大計信息科技有限公司 版權所有

湘ICP備14017520號-3

關注我們
在線咨詢
嘿,我來幫您!