您好,登錄后才能下訂單哦!
小編給大家分享一下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指定按遞減順序排序。
Class.forName( "com.microsoft.jdbc.sqlserver.SQLServerDriver"
).new Instance( );String url="jdbc:microsoft:sqlserver://localhost:1433;
DatabaseName=pubs";String user="dxaw";
String password="123";
Connection conn=DriverManager.getConnection( url, user, password );
Statement st=conn.createStatement( ResultSet.TYPE_SCROLL_SENSITIVE,
ResultSet.CONCUR_UPDATABLE );
String sql="select * from tbl order by id desc";
ResultSet rs=st.executeQuery( sql );
while( rs.next )...{
out.println( rs.getString( "..." ) );
}
rs.close( );
st.close( );
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è)資訊頻道!
免責聲明:本站發(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)容。