当前位置:编程学习 > JAVA >>

今天写程序很郁闷,望高手指点下

这个JSP程序一在浏览器中运行,tomcat就堵死,就是cpu一下子升到100%,无法往下执行,数据也无法提交,
程序就是利用结果集对数据库进行更新
请高手帮我看下,到底怎么回事,cpu就是堵死,也没有提示我任何错误

源代码如下:

<%@ page contentType="text/html;charset=GB2312" import="java.sql.*" %>

<HTML><Body bgcolor=cyan><Font size=2>
 <%
     Connection con;
     Statement sql;
     ResultSet res;
     try
     {
       Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");       //桥连接
     }catch(Exception e)
     {}
     
    try
    { 
     con=DriverManager.getConnection("jdbc:odbc:test");            //与数据库建立连接
      sql=con.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE);
       res=sql.executeQuery("SELECT * FROM Student");  //得到数据集
     
       res.moveToInsertRow();
       res.updateString(1,"137");
       res.updateString(2,"haha");
       res.updateString(3,"aaa");
       res.updateInt(4,12);
       res.updateString(5,"女");  
       res.insertRow();         //把这一句注释掉就不会出现堵死了,可是为什么会这样
       con.close();
       con.commit();
       }catch(SQLException e)
       {
       out.print(""+e);
       }
  %> 
  
</Font>
 </Body>
 </HTML>
     --------------------编程问答-------------------- 怎么没人回复呢,急啊,希望路过的大侠帮个忙,谢了! --------------------编程问答-------------------- 没看出问题 楼下解决 --------------------编程问答-------------------- 先跑个题, 这个代码顺序就不对,得翻过来
con.close();
con.commit(); --------------------编程问答-------------------- 不怎么懂  为什么要这么干  根据需求 直接拼个update 语句就更新数据库 --------------------编程问答-------------------- 今天逛论坛很郁闷,又看到一个在jsp中写脚本代码的哥们 --------------------编程问答-------------------- 为什么写在页面呢?方法封装到类中,页面调用就ok了,在页面写脚本。。。让人感觉是初学者,而且这种odbc连接数据库,操作数据库的代码我第一次看见这么写的。总之,脚本写的很差,lz的jsp有误入歧途的危险。 --------------------编程问答-------------------- SELECT * FROM Student 
把* 换成具体列名试一试 --------------------编程问答-------------------- 先跑个题, 这个代码顺序就不对,得翻过来
con.close();
con.commit();

同意这个答案 --------------------编程问答-------------------- 感觉很混乱,脚本写在页面上~而且还是通过odbc桥接,有点费解 --------------------编程问答--------------------
引用 3 楼 kingofvc 的回复:
先跑个题, 这个代码顺序就不对,得翻过来
con.close();
con.commit();


尝试一下~ --------------------编程问答-------------------- 这代码写的和我们公司那个哥们有得一拼了,他也喜欢把脚本写在页面里。汗! --------------------编程问答-------------------- 先跑个题, 这个代码顺序就不对,得翻过来
con.close();
con.commit();

--------------------编程问答-------------------- 你操作前先判段下是否支持给定结果集类型结合在一起的给定并发性类型:
DatabaseMetaData metaData = con.getMetaData();
if(metaData.supportsResultSetConcurrency(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE)){
res.moveToInsertRow();
res.updateString(1,"137");
res.updateString(2,"haha");
res.updateString(3,"aaa");
res.updateInt(4,12);
res.updateString(5,"女");   
res.insertRow(); 
res.moveToCurrentRow();
}else{
String sql = "update ...";
...
}

--------------------编程问答-------------------- 应该是放在
sql=con.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE);
  res=sql.executeQuery("SELECT * FROM Student");
这些的前面;

只能去测试看是否有问题。
补充:Java ,  Web 开发
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,