关于executeQuery 的问题.(早上在2000中贴的不行,现再来一次)(50分)

K

kevinfu

Unregistered / Unconfirmed
GUEST, unregistred user!
在BEAN中有这样一函数,
public ResultSet executeQuery(String sql) {
try {
DriverManager.setLoginTimeout(10);
Connection connection = DriverManager.getConnection(url,login,password);
connection.setCatalog(ConDB);
Statement st = connection.createStatement();
rs = st.executeQuery(sql);
}
catch(SQLException ex) {
System.err.println("JDBCMSSQL.executeQuery: " + ex.getMessage());
}
return rs;
}
我在JSP文件中有个INSERT 语句。
&lt%
....
usql="insert into dbo.contactus(...) values(...)";
ResultSet RS = workM.executeQuery(usql);
RS.close();
%&gt
提交执行,有错信息在JAVA窗口,但数据库已增加资料。
我猜想,这于返回值有关,但我不知道,INSERT,DELETE,或SELETC getdate() 的返加值
请取什么,使用什么'字段',result[0]???, 谁能告诉我,有例子吗?
JAVA 窗口错误如下:
JDBCMSSQL.executeQuery: [TDS Driver]No result sets were produced by 'INSERT INTO
dbo.ContactUs(FirstName, LastName, Company, Street, Zip, City, State, Country,
Tel, Fax, WebSite, Email, Msg, InDate, Process, PrDate, DeleteIt)VALUES ('Lingli
ng','Yu','Ace Mold company limited','','','','','','','','','ling@ie','se
fw','','N','','N')'
Unhandled error! You might want to consider having an error page to report such
errors more gracefully
java.lang.NullPointerException
at webpages.Contact.ContPost_jsp_6._jspService(ContPost_jsp_6.java:120)
at com.sun.jsp.runtime.HttpJspBase.service(HttpJspBase.java:87)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:840)
at com.sun.jsp.runtime.JspServlet$JspServletWrapper.service(JspServlet.j
ava:88)
at com.sun.jsp.runtime.JspServlet.serviceJspFile(JspServlet.java:218)
at com.sun.jsp.runtime.JspServlet.service(JspServlet.java:294)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:840)
at com.sun.web.core.ServletWrapper.handleRequest(ServletWrapper.java:155
)
at com.sun.web.core.Context.handleRequest(Context.java:414)
at com.sun.web.server.ConnectionHandler.run(ConnectionHandler.java:139)
HANDLER THREAD PROBLEM: java.io.IOException: Socket Closed
java.io.IOException: Socket Closed
at java.net.PlainSocketImpl.getInputStream(PlainSocketImpl.java:421)
at java.net.Socket$1.run(Socket.java:335)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.Socket.getInputStream(Socket.java:332)
at com.sun.web.server.ConnectionHandler.run(ConnectionHandler.java:161)
 
当SQL用INSERT,DELETE,或UPDATE时,不能用executeQuery;
把它改成executeUpdate;这时返回值是一个int.表示操作所影响的行数。
 
executeQuery() 返回类型是ResultSet
executeUpdate()返回类型是int
execute()返回类型是boolean
你要根据具体的SQL语句分别对待。
 
不好意思,今天才回来,近来大富翁好像慢了很多,白天我联不上线。。。 但愿以后速度
所改善。
现在又有一问题请大家指点。
我在NT4下装了JDK1.3 和 JSWDK-1.0.1。HTML,JSP 文件放在它的默认目录下面,从客户机
上可以正常访问。我发现,当有一正确的URL 如:
http://localhost:8080/test/test.jsp 可以正确执行它,但是如果,我把/test.jsp 去掉
,只输入http://localhost:8080/test,浏览器就会把TEST目录下的文件列表出来。像个
FTP,什么文件都看得见。不知大家有什么方法可以解决。
 
指定默认的页面即可
 
给Hunj:
如果我有N 个目录,那么,就是就要在 webserver.xml 中加N 个语句,这有点行不通。
我看过一些其它站点,不会出现这个问题,不怎么解决。??。。
 
kevinfu:请继续或结束问题
 
多人接受答案了。
 
顶部