溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

JSP數(shù)據(jù)庫如何實現(xiàn)數(shù)據(jù)排序、主/從表處理、事務處理

發(fā)布時間:2021-11-22 09:47:30 來源:億速云 閱讀:696 作者:小新 欄目:編程語言

小編給大家分享一下JSP數(shù)據(jù)庫如何實現(xiàn)數(shù)據(jù)排序、主/從表處理、事務處理,相信大部分人都還不怎么了解,因此分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后大有收獲,下面讓我們一起去了解一下吧!

簡單介紹JSP數(shù)據(jù)庫操作的3個小技巧:

1.數(shù)據(jù)排序

在JSP數(shù)據(jù)庫技術(shù)中,可以使用ORDER子句對查詢結(jié)果進行排序[ ORDER BY { order_by_exdivssion[ ASC | DESC]} [ ¸…n ] ],其中,order_by_exdivssion用來指定要排序的列;ASC指定按遞增順序排列;DESC指定按遞減順序排序。

  1. Class.forName( "com.microsoft.jdbc.sqlserver.SQLServerDriver"
    ).new Instance( );  

  2. String url="jdbc:microsoft:sqlserver://localhost:1433;
    DatabaseName=pubs"
    ;  

  3. String user="dxaw";  

  4. String password="123";  

  5. Connection conn=DriverManager.getConnection( url, user, password );  

  6. Statement st=conn.createStatement( ResultSet.TYPE_SCROLL_SENSITIVE,  

  7.  ResultSet.CONCUR_UPDATABLE );  

  8. String sql="select * from tbl order by id desc";  

  9. ResultSet rs=st.executeQuery( sql );  

  10. while( rs.next )...{  

  11.     out.println( rs.getString( "..." ) );  

  12. }  

  13. rs.close( );  

  14. st.close( );  

  15. conn.close( ); 

2.主/從表處理

實現(xiàn)主從表查詢主要通過IN子句和EXISTS子句為實現(xiàn)。

IN子句是通過IN(或NOT IN)連接起來的一種檢索數(shù)據(jù)的方法,其返回的結(jié)果集中可以包含零個或者多個值。

EXISTS子句是通過EXISTS(或NOT EXISTS)連接起來的一種檢索數(shù)據(jù)的方法,它的功能是判斷子查詢的結(jié)果集中是否有數(shù)據(jù)行返回,返回TRUE或FALSE,而不返回其他的實際數(shù)據(jù)。由于不需要在這種子查詢中返回具體值,這種子查詢的選擇列表經(jīng)常使用“SELECT *”格式,其外層的WHERE子句也不需要指定列名。 

select au_id, au_name form authors where au_id IN (   select au_id form titleauthor where title_id IN (   select title_id form titles where type="business" )  )

3.事務處理

事務是JSP數(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ù)的修改,在事務提交之前對其他事務不可見。持久性表示已提交的數(shù)據(jù)在事務執(zhí)行失敗時,數(shù)據(jù)的狀態(tài)都應該正確。

在JDBC中怎樣將多個SQL語句組合成一個事務呢?在JDBC中,打開一個連接對象Connection時,缺省是auto- commit模式,每個SQL語句都被當作一個事務,即每次執(zhí)行一個語句,都會自動的得到事務確認。為了能將多個SQL語句組合成一個事務,要將 auto-commit模式屏蔽掉。在auto-commit模式屏蔽掉之后,如果不調(diào)用commit()方法,SQL語句不會得到事務確認。在最近一次 commit()方法調(diào)用之后的所有SQL會在方法commit()調(diào)用時得到確認。

public int delete(int sID) {   dbc = new DataBaseConnection();   Connection con = dbc.getConnection();   try {  con.setAutoCommit(false);// 更改JDBC事務的默認提交方式  dbc.executeUpdate("delete from tab1 where ID=" + sID);  dbc.executeUpdate("delete from tab2 where ID=" + sID);  dbc.executeUpdate("delete from tab3 where bylawid=" + sID);  con.commit();//提交JDBC事務  con.setAutoCommit(true);// 恢復JDBC事務的默認提交方式  dbc.close();  return 1;   }   catch (Exception exc) {  con.rollBack();//回滾JDBC事務  exc.printStackTrace();  dbc.close();  return -1;   }查看本文來源

以上是“JSP數(shù)據(jù)庫如何實現(xiàn)數(shù)據(jù)排序、主/從表處理、事務處理”這篇文章的所有內(nèi)容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內(nèi)容對大家有所幫助,如果還想學習更多知識,歡迎關(guān)注億速云行業(yè)資訊頻道!

向AI問一下細節(jié)

免責聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI