CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
花落谁家,你作主! 盛大widget设计大赛英雄榜
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  Java >  Web 开发

jsp jdbc为什麽不能把数据insert到sql server 中,也不能从sql server中提取数据?!

楼主jcreatorqijiashe(秋天的童话)2002-07-21 13:44:57 在 Java / Web 开发 提问

用jbuilder的debug是总是到了while(rs.next())处停下,好想是说我在.jsp和.class中的查找数据的索引指没有和sql   server中建的数据的列名对应,Web   Run时就说NullPointerException...   ...可我已使他们一样了!   怎样才能让他们对应起来呢?///////////////main.jsp的   代码:  
  <%  
      String   sql;  
      ResultSet   rs;  
      sql="select*from   basiclyb   order   by   addtime   desc";  
      basicDB.DBConnect();  
      rs=basicDB.executeQuery(sql);  
  ///////////////////就是下面这句//////////////////////////////  
      while(rs.next()){  
      out.print("<tr><td   width=500   bgcolor=#EEEEEE><a   href=view.jsp?id=");  
      out.print(rs.getInt("id"));  
      out.print("target=bottom>&nbsp;;&nbsp;");  
      out.print(rs.getString("title"));  
      out.print("</a></td><td   width=130   bgcolor=#eeeeee><div   align=center>");  
      out.print(rs.getString("author"));  
      out.print("</div></td><td   width=130   bgcolor=#EEEEEE><div   align=center>");  
      out.print(rs.getString("addtime"));  
      out.print("</div></td></tr>");  
      }  
      %>  
  ////////////////////////插入sql   server中数据的jsp代码//////////  
    <%  
          String   author,title,content;  
  author=(String)request.getParameter("author");  
  title=(String)request.getParameter("title");  
  content=(String)request.getParameter("content");  
  author=escapeHTMLTags(author);  
  title=escapeHTMLTags(title);  
  content=escapeHTMLTags(content);  
  if(checkDataValid(author)&&checkDataValid(title)){  
      String   sql;  
      sql="insert   into   basiclyb(title,author,content,body)VALUES('";  
      sql+=title;  
      sql+="','";  
      sql+=author;  
      sql+="','";  
      sql+=content;  
      sql+="')";  
      byte[]temp=sql.getBytes("iso-8859-1");  
      String   sqlCStr=new   String(temp);  
      out.println(basicDB.DBConnect());  
      basicDB.executeQuery(sqlCStr);  
      response.sendRedirect("liuyanban.htm");  
  }  
  %>  
  高手指点! 问题点数:20、回复次数:7Top

1 楼realyfly(^_^)回复于 2002-07-21 13:49:25 得分 10

insert和delete,update到sql   server   都不应该生成记录集的,所以  
  rs=basicDB.executeQuery(sql);执行的时候,如果sql是insert和delete,update,rs就是空的  
  如果是insert和delete,update语句  
  直接basicDB.executeQuery(sql);就行了Top

2 楼zhaoweiemail(剑心)回复于 2002-07-21 13:53:19 得分 5

正如上面说的,你在插入、修改、删除记录时不产生结果集,你应该执行basicDB.executeUpdate(sql);这样就行了。Top

3 楼zjgj(重体力劳动者)回复于 2002-07-21 13:53:20 得分 5

是用basicDB.executeUpdate(sql)Top

4 楼jcreatorqijiashe(秋天的童话)回复于 2002-07-21 21:31:40 得分 0

好的我试一试。Top

5 楼jcreatorqijiashe(秋天的童话)回复于 2002-07-21 22:37:58 得分 0

不行啊,如果只保留basicDB.executeUpdate(sql)把下面全去掉的话jsp叶面就会说:   class   riso.mybook.jsp.c7.basicDBBean   中未找到方法   executeUpdate(java.lang.String)。  
                                  basicDB.executeUpdate(sql);  
                                                                            ^  
  1   个错误  
  ///////////////////////main.jsp///////////////////////////////  
          while(rs.next()){  
      out.print("<tr><td   width=500   bgcolor=#EEEEEE><a   href=view.jsp?id=");  
      out.print(rs.getInt("id"));  
      out.print("target=bottom>&nbsp;;&nbsp;");  
      out.print(rs.getString("title"));  
      out.print("</a></td><td   width=130   bgcolor=#eeeeee><div   align=center>");  
      out.print(rs.getString("author"));  
      out.print("</div></td><td   width=130   bgcolor=#EEEEEE><div   align=center>");  
      out.print(rs.getString("addtime"));  
      out.print("</div></td></tr>");  
      }  
  我把javabean文件的basicDBBean中的basicDB.executeQuery(sql)改成basicDB.executeUpdate(sql)后,连编译都通不过。说:C:\tomcat\webapps\ROOT\WEB-INF\classes\basicDBBean.java:28:   incompatible   types  
  found       :   int  
  required:   java.sql.ResultSet  
                  rs=s.executeUpdate(sql);  
                                                      ^  
  1   error  
  下面是bean的代码:////////////basicDBBean.java//////////////////  
  public   class   basicDBBean   {  
  private   String   DBLocation="jdbc:odbc:basiclyb";  
  private   String     DBDriver="sun.Jdbc.Odbc.JdbcOdbcDriver";  
  private   ResultSet   rs=null;  
  private   Connection   conn=null;  
      public   basicDBBean()   {  
      }  
  public   ResultSet   executeUpdate(String   sql){  
      if(conn==null){  
          DBConnect();  
      }  
      if(conn==null)  
          rs=null;  
          else{  
              try{  
                  Statement   s=conn.createStatement();  
                  rs=s.executeUpdate(sql);  
              }  
              catch(SQLException   e){}  
          }  
          return   (rs);  
      }  
      public   String   DBConnect()  
      {  
          String   strExc="";  
          try{  
              Class.forName(DBDriver);  
              conn=DriverManager.getConnection(DBLocation,"riso","");  
          }  
          catch(ClassNotFoundException   e){  
              strExc=e.toString();  
          }  
          catch(SQLException   e){  
              strExc=e.toString();  
          }  
          return(strExc);  
      }  
      public   void   setDBLocation(String   location){  
          DBLocation=location;  
      }  
      public   void   setDBDriver(String   driver){  
          DBDriver=driver;  
      }  
      public   void   setconn(Connection   conn){  
          conn=conn;  
      }  
      public   String   getDBLocation(){  
          return   (DBLocation);  
      }  
      public   String   getDBDriver(){  
          return(DBDriver);  
      }  
      public   ResultSet   getRS(){  
          return(rs);  
      }  
      public   Connection   getconn(){  
          return(conn);  
      }  
          }  
   
  这是为什麽?Top

6 楼zhaoweiemail(剑心)回复于 2002-07-21 22:42:15 得分 0

public   ResultSet   executeUpdate(String   sql){  
      if(conn==null){  
          DBConnect();  
      }  
      if(conn==null)  
          rs=null;  
          else{  
              try{  
                  Statement   s=conn.createStatement();  
                  rs=s.executeUpdate(sql);  
              }  
              catch(SQLException   e){}  
          }  
          return   (rs);  
      }  
  应该必成  
  public   void   executeUpdate(String   sql){  
      if(conn==null){  
          DBConnect();  
      }  
          else{  
              try{  
                  Statement   s=conn.createStatement();  
                  s.executeUpdate(sql);  
              }  
              catch(SQLException   e){}  
          }  
      }  
  Top

7 楼jcreatorqijiashe(秋天的童话)回复于 2002-07-21 23:36:35 得分 0

问题解决了!非常感谢!可还有一点疑问,我查java的API文档时明明看到:  
  executeUpdate  
   
  public   int   executeUpdate(String   sql)  
                                      throws   SQLException  
   
   
  Executes   an   SQL   INSERT,   UPDATE   or   DELETE   statement.   In   addition,   SQL   statements   that   return   nothing,   such   as   SQL   DDL   statements,   can   be   executed.  
   
  Parameters:  
   
  sql   -   an   SQL   INSERT,   UPDATE   or   DELETE   statement   or   an   SQL   statement   that   returns   nothing  
   
  Returns:  
   
  either   the   row   count   for   INSERT,   UPDATE   or   DELETE   statements,   or   0   for   SQL   statements   that   return   nothing  
   
  Throws:  
   
  SQLException   -   if   a   database   access   error   occurs  
  说明executeUpdate是int型的,为什麽按照文档上写的去做会不正确呢?Top

相关问题

  • 为什麽jsp的jdbc连不上sql server呢?显示:NullPointerException... ...
  • 这个jsp程序为什麽不能向mysql中插入数据呢?insert into语句有问题吗?
  • java and jsp有什麽区别呀??
  • 为什麽jsp用jdbc odbc桥调用sql server中的数据就是调不出来呢? 怎样往里写数据?
  • jsp与SQL Server
  • 请问各位作jsp开发用什麽工具最好?
  • 問下大家,JSP用什麽數據庫比較好?
  • jsp + ms sql server 2000
  • jsp 连接SQL 2000?
  • insert IMAGE into SQL

关键词

  • 数据
  • jsp
  • sql
  • basicdb
  • executeupdate
  • rs
  • insert和delete
  • update
  • server

得分解答快速导航

  • 帖主:jcreatorqijiashe
  • realyfly
  • zhaoweiemail
  • zjgj

相关链接

  • CSDN Java频道
  • Java类图书
  • Java类源码下载

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
北京创新乐知广告有限公司 版权所有, 京 ICP 证 070598 号
世纪乐知(北京)网络技术有限公司 提供技术支持
Copyright © 2000-2008, CSDN.NET, All Rights Reserved
GongshangLogo