介绍JSP数据库高级操作
创始人
2024-04-08 15:12:18
0

简单介绍JSP数据库操作的3个小技巧:数据排序,主/从表处理,事务处理。

1.数据排序

在JSP数据库技术中,可以使用ORDER子句对查询结果进行排序[ 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.主/从表处理

实现主从表查询主要通过IN子句和EXISTS子句为实现。

IN子句是通过IN(或NOT IN)连接起来的一种检索数据的方法,其返回的结果集中可以包含零个或者多个值。

EXISTS子句是通过EXISTS(或NOT EXISTS)连接起来的一种检索数据的方法,它的功能是判断子查询的结果集中是否有数据行返回,返回TRUE或FALSE,而不返回其他的实际数据。由于不需要在这种子查询中返回具体值,这种子查询的选择列表经常使用“SELECT *”格式,其外层的WHERE子句也不需要指定列名。 

  1. select au_id, au_name form authors where au_id IN (   
  2. select au_id form titleauthor where title_id IN (   
  3. select title_id form titles where type="business" 
  4. )  

3.事务处理

事务是JSP数据库理论中的核心概念之一。如果一组处理步骤或者全部发生或者一步也不执行,我们称该组处理步骤为一个事务。当所有的步骤像一个操作一样被完整地执行,我们称该事务被提交。由于其中的一部分或多步执行失败,导致没有步骤被提交,则事务必须回滚(回到最初的系统状态)。事务必须服从ISO/IEC所制定的ACID 原则。ACID是原子性(atomicity)、一致性(consistency)、隔离性(isolation)和持久性(durability)的缩写。事务的原子性表示事务执行过程中的任何失败都将导致事务所做的任何修改失效。一致性表示当事务执行失败时,所有被该事务影响的数据都应该恢复到事务执行前的状态。隔离性表示在事务执行过程中对数据的修改,在事务提交之前对其他事务不可见。持久性表示已提交的数据在事务执行失败时,数据的状态都应该正确。

在JDBC中怎样将多个SQL语句组合成一个事务呢?在JDBC中,打开一个连接对象Connection时,缺省是auto- commit模式,每个SQL语句都被当作一个事务,即每次执行一个语句,都会自动的得到事务确认。为了能将多个SQL语句组合成一个事务,要将 auto-commit模式屏蔽掉。在auto-commit模式屏蔽掉之后,如果不调用commit()方法,SQL语句不会得到事务确认。在最近一次 commit()方法调用之后的所有SQL会在方法commit()调用时得到确认。

  1. public int delete(int sID) {  
  2.  dbc = new DataBaseConnection();  
  3.  Connection con = dbc.getConnection();  
  4.  try {  
  5.   con.setAutoCommit(false);// 更改JDBC事务的默认提交方式  
  6.   dbc.executeUpdate("delete from tab1 where ID=" + sID);  
  7.   dbc.executeUpdate("delete from tab2 where ID=" + sID);  
  8.   dbc.executeUpdate("delete from tab3 where bylawid=" + sID);  
  9.   con.commit();//提交JDBC事务  
  10.   con.setAutoCommit(true);// 恢复JDBC事务的默认提交方式  
  11.   dbc.close();  
  12.   return 1;  
  13.  }  
  14.  catch (Exception exc) {  
  15.   con.rollBack();//回滚JDBC事务  
  16.   exc.printStackTrace();  
  17.   dbc.close();  
  18.   return -1;  
  19.  }查看本文来源   

 

【编辑推荐】

  1. JSP连接ORACLE数据库时注意的一些问题
  2. JSP中tomcat的SQL Server2000数据库连接池的配置
  3. 简单介绍Servlets和JSP的区别
  4. JSP include指令和include行为的区别
  5. JSP输出excel文档和中文乱码问题的解决

相关内容

热门资讯

如何允许远程连接到MySQL数... [[277004]]【51CTO.com快译】默认情况下,MySQL服务器仅侦听来自localhos...
如何利用交换机和端口设置来管理... 在网络管理中,总是有些人让管理员头疼。下面我们就将介绍一下一个网管员利用交换机以及端口设置等来进行D...
施耐德电气数据中心整体解决方案... 近日,全球能效管理专家施耐德电气正式启动大型体验活动“能效中国行——2012卡车巡展”,作为该活动的...
20个非常棒的扁平设计免费资源 Apple设备的平面图标PSD免费平板UI 平板UI套件24平图标Freen平板UI套件PSD径向平...
德国电信门户网站可实时显示全球... 德国电信周三推出一个门户网站,直观地实时提供其安装在全球各地的传感器网络检测到的网络攻击状况。该网站...
为啥国人偏爱 Mybatis,... 关于 SQL 和 ORM 的争论,永远都不会终止,我也一直在思考这个问题。昨天又跟群里的小伙伴进行...
《非诚勿扰》红人闫凤娇被曝厕所... 【51CTO.com 综合消息360安全专家提醒说,“闫凤娇”、“非诚勿扰”已经被黑客盯上成为了“木...
2012年第四季度互联网状况报... [[71653]]  北京时间4月25日消息,据国外媒体报道,全球知名的云平台公司Akamai Te...