新聞中心
簡單介紹JSP數(shù)據(jù)庫操作的3個小技巧:數(shù)據(jù)排序,主/從表處理,事務處理。

網(wǎng)站建設哪家好,找創(chuàng)新互聯(lián)建站!專注于網(wǎng)頁設計、網(wǎng)站建設、微信開發(fā)、小程序開發(fā)、集團企業(yè)網(wǎng)站建設等服務項目。為回饋新老客戶創(chuàng)新互聯(lián)還提供了衢江免費建站歡迎大家使用!
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連接ORACLE數(shù)據(jù)庫時注意的一些問題
- JSP中tomcat的SQL Server2000數(shù)據(jù)庫連接池的配置
- 簡單介紹Servlets和JSP的區(qū)別
- JSP include指令和include行為的區(qū)別
- JSP輸出excel文檔和中文亂碼問題的解決
網(wǎng)站標題:介紹JSP數(shù)據(jù)庫高級操作
網(wǎng)站網(wǎng)址:http://www.5511xx.com/article/dhdessh.html


咨詢
建站咨詢
