CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
可用分押宝游戏火热进行中... 专题改版:Java Web 专题
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  Java >  Web 开发

高手请进!SOS

楼主seacaptain(大侠)2004-09-03 12:34:11 在 Java / Web 开发 提问

各位帮我看看下面有什么问题?我提交数据后,页面正常显示,但是数据没有.  
  connibm.java  
  //   Java   Document  
  package   ibm;  
  import   java.util.*;  
  import   java.sql.*;  
  import   javax.sql.*;  
  import   java.io.*;  
  import   oracle.jdbc.driver.*;  
  import   javax.naming.*;  
   
  public   class   connibm   {  
      String   sDBDriver   =   "oracle.jdbc.driver.OracleDriver";  
      String   sConnStr   =   "jdbc:oracle:thin:@ibm-2373-7wh:1521:ibm";  
      Connection   connect   =   null;  
      ResultSet   rs   =   null;  
    public   connibm()   {  
        try   {  
              Class.forName(sDBDriver);    
  //     connect   =   DriverManager.getConnection(sConnStr,"scott","dingding");  
            }  
              catch(java.lang.ClassNotFoundException   e)   {  
                System.err.println(   e.getMessage());  
              }  
  //     return   connect;  
            }  
    public   ResultSet   executeQuery(String   sql)   {  
      rs   =   null;  
    try   {  
      connect   =   DriverManager.getConnection(sConnStr,"scott","dingding");    
      Statement   stmt   =   connect.createStatement();  
      rs   =   stmt.executeQuery(sql);  
      }    
      catch(SQLException   ex)   {    
      System.err.println(ex.getMessage());  
      }  
      return   rs;  
        }  
    }  
   
  news_input.jsp  
   
  <%@   page   contentType="text/html;charset=gb2312"   language="java"   import="java.sql.*"   errorPage=""   %>  
   
  <html>  
  <head>  
  <meta   http-equiv="Content-Type"   content="text/html;charset=gb2312"   />  
  <title>新闻模块</title>  
  </head>  
   
   
  <body>  
  <jsp:include   page="/header.inc"   flush="True"   />  
  <jsp:include   page="subject.inc"   flush="True"   />  
  <table   width="780"   border="0"   cellspacing="0"   cellpadding="0">  
      <tr>    
          <td   width="600"   height="20"><font   color="#000000"   >现在您的位置:新闻模块内容输入界面</font></td>  
          <td   width="180"   height="20"><font   color="#000000"   >现在的时间是:xxxxxxxxxx</font></td>  
      </tr>  
  </table>  
   
  <table   width="780"   border="0"   cellspacing="0"   cellpadding="0">  
      <tr>  
          <td   width="100"   valign="top">&nbsp;   </td>  
  <form   name="form1"   method="post"   action="news_post.jsp">  
          <td   width="500"   height="400"   valign="top">   <table   width="600"   border="0">  
                  <tr>    
                      <td   width="90"   height="29"><font   size="2">主题:</font></td>  
                      <td   width="500"   height="29">  
  <input   name="title"   type="text"   size="40"></td>  
                  </tr>  
                  <tr>    
                      <td   height="25"><font   size="2">来源:</font></td>  
                      <td   height="25">  
  <input   type="text"   name="from"></td>  
                  </tr>  
                  <tr>    
                      <td   height="22"><font   size="2">时间:</font></td>  
                      <td   height="22">  
  <input   type="text"   name="date"></td>  
                  </tr>  
                  <tr>    
                      <td   height="60"><font   size="2">内容:</font></td>  
                      <td   height="60">    
                          <textarea   name="message"></textarea></td>  
                  </tr>  
                  <tr>    
                      <td   height="21"><font   size="2">撰稿人:</font></td>  
                      <td   height="21">  
  <input   type="text"   name="auther"></td>  
                  </tr>  
                  <tr>    
                      <td   height="28"><font   size="2">新闻分类:</font></td>  
                      <td><select   name="kinds">  
                              <option   value="1">国内新闻</option>  
                              <option   value="2">国际新闻</option>  
                              <option   value="3">社区新闻</option>  
                              <option   value="4">财经新闻</option>  
                              <option   value="5">体育新闻</option>  
                          </select></td>  
                  </tr>  
                  <tr>    
                      <td   colspan="2"><div   align="center">  
                              <input   type="Submit"   name="Submit"   value="提交">  
                              <input   type="reset"   name="Submit2"   value="取消">  
                          </div></td>  
                  </tr>  
                  <tr>    
                      <td>&nbsp;</td>  
                      <td>&nbsp;</td>  
                  </tr>  
              </table>  
             
                  <p>&nbsp;</p>  
               
          </td></form>  
   
          <td   width="100"   valign="top">空白区</td>  
      </tr>  
  </table>  
   
  <jsp:include   page="/bottom.inc"   flush="True"   />  
   
  </body>  
  </html>  
   
  news_post.jsp  
   
  <%@   page   contentType="text/html;charset=gb2312"   language="java"   import="java.sql.*"   errorPage=""   %>  
  <jsp:useBean   id="ibmBean"   scope="page"   class="ibm.connibm"/>  
  <html>  
  <head>  
  <meta   http-equiv="Content-Type"   content="text/html;charset=gb2312"   />  
  <title>新闻模块</title>  
  </head>  
   
  <body>  
  <jsp:include   page="/header.inc"   flush="True"   />  
  <jsp:include   page="subject.inc"   flush="True"   />  
  <table   width="780"   border="0"   cellspacing="0"   cellpadding="0">  
      <tr>    
          <td   width="600"   height="20"><font   color="#000000"   size="2"   >现在您的位置:新闻模块内容输入界面</font></td>  
          <td   width="180"   height="20"><font   color="#000000"   size="2"   >现在的时间是:xxxxxxxxxx</font></td>  
      </tr>  
  </table>  
  <table   width="780"   border="0"   cellspacing="0"   cellpadding="0">  
  <%  
  String   title,from,date,message,auther,kinds;  
   
  title=request.getParameter("title");  
  from=request.getParameter("from");  
  date=request.getParameter("date");  
  message=request.getParameter("message");  
  auther=request.getParameter("auther");  
  kinds=request.getParameter("kinds");  
   
   
  String   sql;  
  ResultSet   RS;  
  sql="insert   into   chr_news   values('"+title+"','"+from+"','"+date+"','"+"','"+message+"','"+auther+"','"+kinds+"')";  
  //  
  RS=ibmBean.executeQuery(sql);  
   
  %>    
  成功发送信件  
       
  </table>  
   
  <jsp:include   page="/bottom.inc"   flush="True"   />  
  </body>  
  </html>  
   
   
  问题点数:100、回复次数:37Top

1 楼seacaptain(大侠)回复于 2004-09-03 14:18:42 得分 0

急!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!Top

2 楼blackcourser(潜心修炼)回复于 2004-09-03 14:29:59 得分 0

没有看到显示页面啊?  
   
  RS得到以后在哪里显示啊???  
   
  如果连“成功发送信件”都部显示的话,你看看应用服务器那里提示什么错误!Top

3 楼seacaptain(大侠)回复于 2004-09-03 14:34:38 得分 0

有"成功发送信件"的显示,但是在news_input.jsp中输入的内容没有进入数据库里Top

4 楼zhang21cnboy(事了抚衣去,不留身与名)回复于 2004-09-03 14:35:06 得分 0

sql="insert   into   chr_news   values('"+title+"','"+from+"','"+date+"','"+"','"+message+"','"+auther+"','"+kinds+"')";  
  //  
  RS=ibmBean.executeQuery(sql);  
   
  插入语句,咋这么执行呢?Top

5 楼vcvj([Reside]in Fuzhou, [Gonna]be Oversea, [Depositing)回复于 2004-09-03 14:40:55 得分 10

to   check   your   bean   of   the   ibmBean.  
  try   to   add   commit   to   your   programTop

6 楼yaray(雅睿,生活在别处)回复于 2004-09-03 15:00:55 得分 20

在connibm类中加一个方法并编译:  
      public   boolean   update(String   sql)   throws   Exception   {  
          //   数据库连接在构造函数中生成(数据库连接可复用)  
          Statement   stmt   =   connect.createStatement();  
          return   (stmt.executeUpdate(sql)>0);  
      }  
   
  然后将  
      RS=ibmBean.executeQuery(sql);  
  替换为:  
      if(ibmBean.update(sql)){  
          System.out.println("成功");  
      }  
  Top

7 楼seacaptain(大侠)回复于 2004-09-03 21:11:02 得分 0

to     yaray(雅睿,生活在别处,工作在别墅):  
  按照你的改了后,出现错误  
  javax.servlet.ServletException:   ibm.connibm.update(Ljava/lang/String;)Z  
  Top

8 楼NewTypeQ(Full Java Alchemist)回复于 2004-09-03 21:24:35 得分 10

sql语句有问题  
  是不是都是CHAR字段呢Top

9 楼ikevin(菜无心)回复于 2004-09-03 21:31:26 得分 20

 
  插入的方法是executeUpdate(),并且插入方法返回的是一个int型的数值。表示影响的行数。  
   
  所以应当:  
    public   int   executeQuery(String   sql)   {  
      int   i=0;  
    try   {  
      connect   =   DriverManager.getConnection(sConnStr,"scott","dingding");    
      Statement   stmt   =   connect.createStatement();  
      i   =   stmt.executeUpdate(sql);  
      }    
      catch(SQLException   ex)   {    
      System.err.println(ex.getMessage());  
      }  
      return   i;  
        }  
   
  //在JSP页面,判断只要ibmBean.executeQuery(sql)!=0,则表示插入成功。Top

10 楼jimsons(路漫漫其修远兮)回复于 2004-09-03 21:39:06 得分 10

楼上说得对  
  插入数据是用executeUpdate()Top

11 楼seacaptain(大侠)回复于 2004-09-03 21:51:22 得分 0

To   ikevin(菜无心,按照你的方法改了,出现下面的错误  
  javax.servlet.ServletException:   ibm.connibm.executeUpdate(Ljava/lang/String;)I  
  Top

12 楼jimsons(路漫漫其修远兮)回复于 2004-09-03 22:03:13 得分 0

你的方法名不要用executeUpdate吧  
  Top

13 楼seacaptain(大侠)回复于 2004-09-03 22:26:41 得分 0

//connibm.java  
  package   ibm;  
  import   java.util.*;  
  import   java.sql.*;  
  import   javax.sql.*;  
  import   java.io.*;  
  import   oracle.jdbc.driver.*;  
  import   javax.naming.*;  
   
  public   class   connibm   {  
      String   sDBDriver   =   "oracle.jdbc.driver.OracleDriver";  
      String   sConnStr   =   "jdbc:oracle:thin:@ibm-2373-7wh:1521:ibm";  
      Connection   connect   =   null;  
      ResultSet   rs   =   null;  
    public   connibm()   {  
        try   {  
              Class.forName(sDBDriver);    
            }  
              catch(java.lang.ClassNotFoundException   e)   {  
                System.err.println(   e.getMessage());  
              }  
          }  
    public   ResultSet   executeQuery(String   sql)   {  
      rs   =   null;  
    try   {  
      connect   =   DriverManager.getConnection(sConnStr,"scott","dingding");    
      Statement   stmt   =   connect.createStatement();  
      rs   =   stmt.executeQuery(sql);  
          }    
      catch(SQLException   ex)   {    
      System.err.println(ex.getMessage());  
      }  
      return   rs;  
     
        }  
   
  public   int   execUpdate(String   sql)   {  
      int   i=0;  
    try   {  
      connect   =   DriverManager.getConnection(sConnStr,"scott","dingding");    
      Statement   stmt   =   connect.createStatement();  
      i   =   stmt.executeUpdate(sql);  
      }    
      catch(SQLException   ex)   {    
      System.err.println(ex.getMessage());  
      }  
      return   i;  
        }  
   
   
    }  
   
  //news_post.jsp  
   
   
  <%@   page   contentType="text/html;charset=gb2312"   language="java"   import="java.sql.*"   errorPage=""   %>  
  <jsp:useBean   id="ibmBean"   scope="page"   class="ibm.connibm"/>  
  <html>  
  <head>  
  <meta   http-equiv="Content-Type"   content="text/html;charset=gb2312"   />  
  <title>新闻模块</title>  
  </head>  
   
   
   
  <body>  
  <jsp:include   page="/header.inc"   flush="True"   />  
  <jsp:include   page="subject.inc"   flush="True"   />  
  <table   width="780"   border="0"   cellspacing="0"   cellpadding="0">  
      <tr>    
          <td   width="600"   height="20"><font   color="#000000"   size="2"   >现在您的位置:新闻模块内容输入界面</font></td>  
          <td   width="180"   height="20"><font   color="#000000"   size="2"   >现在的时间是:xxxxxxxxxx</font></td>  
      </tr>  
  </table>  
  <table   width="780"   border="0"   cellspacing="0"   cellpadding="0">  
  <%  
  String   vtitle,vfrom,vdate,vmessage,vauther;  
  int   vkinds;  
   
  vtitle=request.getParameter("title");  
  vfrom=request.getParameter("from");  
  vdate=request.getParameter("date");  
  vmessage=request.getParameter("message");  
  vauther=request.getParameter("auther");  
  vkinds=request.getParameter("kinds");  
   
   
  String   sql;  
  ResultSet   RS;  
  sql="insert   into   chr_news(title,from,date,message,auther,kinds)   values('"+vtitle+"','"+vfrom+"','"+vdate+"','"+"','"+vmessage+"','"+vauther+"',"+vkinds+")";  
   
  //RS=ibmBean.executeQuery(sql);  
  if(ibmBean.execUpdate(sql)!=0){  
        System.out.println("成功");  
    }  
   
  %>    
  发送信件  
   
   
   
   
   
       
  </table>  
   
  <jsp:include   page="/bottom.inc"   flush="True"   />  
  </body>  
  </html>  
   
  出现的错误提示  
   
  type   Exception   report  
   
  message    
   
  description   The   server   encountered   an   internal   error   ()   that   prevented   it   from   fulfilling   this   request.  
   
  exception    
   
  org.apache.jasper.JasperException:   Unable   to   compile   class   for   JSP  
   
  No   Java   compiler   was   found   to   compile   the   generated   source   for   the   JSP.    
  This   can   usually   be   solved   by   copying   manually   $JAVA_HOME/lib/tools.jar   from   the   JDK    
  to   the   common/lib   directory   of   the   Tomcat   server,   followed   by   a   Tomcat   restart.    
  If   using   an   alternate   Java   compiler,   please   check   its   installation   and   access   path.  
   
  org.apache.jasper.compiler.DefaultErrorHandler.javacError(DefaultErrorHandler.java:87)  
  org.apache.jasper.compiler.ErrorDispatcher.javacError(ErrorDispatcher.java:311)  
  org.apache.jasper.compiler.Compiler.generateClass(Compiler.java:378)  
  org.apache.jasper.compiler.Compiler.compile(Compiler.java:421)  
  org.apache.jasper.compiler.Compiler.compile(Compiler.java:402)  
  org.apache.jasper.JspCompilationContext.compile(JspCompilationContext.java:512)  
  org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:262)  
  org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:263)  
  org.apache.jasper.servlet.JspServlet.service(JspServlet.java:210)  
  javax.servlet.http.HttpServlet.service(HttpServlet.java:861)  
  sun.reflect.NativeMethodAccessorImpl.invoke0(Native   Method)  
  sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)  
  sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)  
  java.lang.reflect.Method.invoke(Method.java:324)  
  org.apache.catalina.security.SecurityUtil$1.run(SecurityUtil.java:246)  
  java.security.AccessController.doPrivileged(Native   Method)  
  javax.security.auth.Subject.doAsPrivileged(Subject.java:500)  
  org.apache.catalina.security.SecurityUtil.execute(SecurityUtil.java:268)  
  org.apache.catalina.security.SecurityUtil.doAsPrivilege(SecurityUtil.java:162)  
   
  Top

14 楼seacaptain(大侠)回复于 2004-09-03 22:28:56 得分 0

chr_news的表结构;  
    名称                                                                             是否为空?   类型  
    -----------------------------------------   --------   -------------  
    TITLE                                                                           NOT   NULL   VARCHAR2(40)  
    FROM                                                                                               VARCHAR2(40)  
    DATE                                                                                               VARCHAR2(10)  
    MESSAGE                                                                       NOT   NULL   VARCHAR2(2000  
    AUTHER                                                                         NOT   NULL   VARCHAR2(10)  
    KINDS                                                                           NOT   NULL   NUMBER(1)  
   
  另外,oracle自动提交在connibm.java中应怎么设置?Top

15 楼ikevin(菜无心)回复于 2004-09-03 22:35:55 得分 0

 
   
  复制JDK下面/lib/tools.jar   到Tomcat的common/lib下面!Top

16 楼seacaptain(大侠)回复于 2004-09-03 23:08:03 得分 0

我现在用的不是TOMCAT   是sun   的appserver  
  tools.jar在classpath已经设置  
   
  public   int   execUpdate(String   sql)   {  
      int   i=0;  
    try   {  
      connect   =   DriverManager.getConnection(sConnStr,"scott","dingding");    
      Statement   stmt   =   connect.createStatement();  
      i   =   stmt.executeUpdate(sql);  
      }    
      catch(SQLException   ex)   {    
      System.err.println(ex.getMessage());  
      }  
      return   i;  
        }  
  还是有问题!//因为我把if(ibmBean.execUpdate(sql)!=0){  
        System.out.println("成功");  
    }  
  屏蔽掉/*   */之后能够显示页面来.  
  Top

17 楼jimsons(路漫漫其修远兮)回复于 2004-09-03 23:29:02 得分 0

/*   */在哪Top

18 楼xiangbo520(充栋汗牛)回复于 2004-09-04 08:01:15 得分 0

org.apache.jasper.JasperException:   Unable   to   compile   class   for   JSP  
   
  No   Java   compiler   was   found   to   compile   the   generated   source   for   the   JSP.    
  This   can   usually   be   solved   by   copying   manually   $JAVA_HOME/lib/tools.jar   from   the   JDK    
  to   the   common/lib   directory   of   the   Tomcat   server,   followed   by   a   Tomcat   restart.    
  If   using   an   alternate   Java   compiler,   please   check   its   installation   and   access   path.  
   
  你的出错代码显示问题是因为无法找到JSP的编译器,提示你无法找到tools.jar这个文件。Top

19 楼XIHSHI(西红柿)回复于 2004-09-04 08:09:46 得分 0

弄些打印信息,自己调试一把?  
  UPTop

20 楼seacaptain(大侠)回复于 2004-09-04 09:22:04 得分 0

/*if(ibmBean.execUpdate(sql)!=0){  
        System.out.println("成功");  
    }  
  */Top

21 楼seacaptain(大侠)回复于 2004-09-04 09:31:08 得分 0

添加了一句connect.setAutoCommit   (   true   )   ;  
   
  public   int   execUpdate(String   sql)   {  
      int   i=0;  
    try   {  
      connect   =   DriverManager.getConnection(sConnStr,"scott","dingding");    
      Statement   stmt   =   connect.createStatement();  
      connect.setAutoCommit   (   true   )   ;  
      i   =   stmt.executeUpdate(sql);  
      }    
      catch(SQLException   ex)   {    
      System.err.println(ex.getMessage());  
      }  
      return   i;  
        }  
  去掉/*   */之后  
  if(ibmBean.execUpdate(sql)!=0){  
        System.out.println("成功");  
    }  
  能够显示页面,但是没有"成功",数据库里也没有新的数据Top

22 楼warehouseleet(堆栈.net)回复于 2004-09-04 09:36:20 得分 10

老兄你在添加数据库记录的bean时,试一下   用   stmt.execute(sql);  
   
   
  添加数据的时候是可以没有返回值的!!Top

23 楼jimsons(路漫漫其修远兮)回复于 2004-09-04 09:52:21 得分 20

试一下  
  public   int   execUpdate(String   sql)   {  
      int   i=0;  
    try   {  
      connect   =   DriverManager.getConnection(sConnStr,"scott","dingding");    
      Statement   stmt   =   connect.createStatement();  
      i   =   stmt.executeUpdate(sql);  
      }    
      catch(Exception   ex)   {    
      System.out.println(ex.getMessage());  
      }  
      return   i;  
        }  
  Top

24 楼seacaptain(大侠)回复于 2004-09-04 10:08:50 得分 0

to   jimsons(路漫漫其修远兮:一样没有数据加入数据库  
  好象executeUpdate没有执行一样.Top

25 楼jimsons(路漫漫其修远兮)回复于 2004-09-04 10:13:17 得分 0

也没有错误信息吗Top

26 楼seacaptain(大侠)回复于 2004-09-04 10:25:12 得分 0

没有错误信息Top

27 楼seacaptain(大侠)回复于 2004-09-04 10:26:58 得分 0

在news_post.jsp里该怎样写算是提交数据了,commit?Top

28 楼seacaptain(大侠)回复于 2004-09-04 10:31:44 得分 0

是不是在connibm.java   中添加finally?  
  提交数据  
  关闭连接?Top

29 楼mobilecom()回复于 2004-09-04 13:35:30 得分 0

gzTop

30 楼seacaptain(大侠)回复于 2004-09-04 14:25:42 得分 0

sql="insert   into   chr_news(title,from,date,message,auther,kinds)   values('a','b','c','d','e','f')";  
  换直接插入数据也不能进入数据库.  
  是不是javabean还是有问题?请高手们能够指点迷津.  
   
  配置:sun   appserver   8.0,jdk1.4.2,oracle9iTop

31 楼dongdongmaster(冬冬)回复于 2004-09-04 14:42:20 得分 0

看看服务器有没有错误提示Top

32 楼seacaptain(大侠)回复于 2004-09-04 18:37:44 得分 0

TO:dongdongmaster(冬冬)     服务器的提示在哪儿可以看到?Top

33 楼seacaptain(大侠)回复于 2004-09-04 19:15:48 得分 0

sosTop

34 楼seacaptain(大侠)回复于 2004-09-04 21:20:23 得分 0

SOSTop

35 楼mobilecom()回复于 2004-09-04 21:36:20 得分 0

gzTop

36 楼seacaptain(大侠)回复于 2004-09-04 21:42:03 得分 0

没有错误信息时,服务器里的信息为  
  [#|2004-09-04T21:30:21.130+0800|INFO|sun-appserver-pe8.0.0_01|javax.enterprise.system.stream.out|_ThreadID=12;|  
  成功|#]  
   
  在ORACLE里自动提交的功能是怎么设定的?Top

37 楼seacaptain(大侠)回复于 2004-09-05 09:54:02 得分 0

昨天试试都不行,不知今天试试都行了,郁闷!  
   
  新问题:输入中文变乱码了,不知咋解决?Top

相关问题

  • 请进!请进?
  • 请进,请进....
  • 请进
  • 请进。。。。。。。。。
  • 请进
  • 请进
  • 请进
  • 请进
  • 请进
  • 请进

关键词

  • 内容
  • 新闻
  • 时间

得分解答快速导航

  • 帖主:seacaptain
  • vcvj
  • yaray
  • NewTypeQ
  • ikevin
  • jimsons
  • warehouseleet
  • jimsons

相关链接

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

广告也精彩

反馈

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