我打算用bean访问Oracle数据库,但是当运行到返回结果集的时候或者提交update命令的时候,就报出以下错误,请各位老哥老姐支援!:
程序:
package address;import java.io.*;
import java.sql.*;
import java.util.*;
import java.lang.*;
import javax.servlet.*;
import javax.servlet.http.*;
public class detector extends Object
{ public detector(){
}
public void saveaddr(HttpServletRequest request, HttpServletResponse response)
throws ServletException,IOException
{
Connection conn;
Statement stmt;
String Stimestamp = "";
String Saddress = "";
String SRuser = "";
String SRhost = "";
String SRURI = "";
String sql = "";
PrintWriter out = response.getWriter();
try {
out.println("102");
Class.forName("oracle.jdbc.driver.OracleDriver");
conn= DriverManager.getConnection("jdbc:oracle:thin:@172.30.253.107:1521:lvrtest","kbadmin","jhl1000ml");
if (conn == null)
{
out.println("1009");
}else
{
out.println("1008");
} stmt = conn.createStatement();
if (stmt == null)
{
out.println("1009");
}else
{
out.println("1008");
}
out.println("103");
sql="select to_char(sysdate,'yyyymmddhh24miss') || dbms_random.string('1',20 ) as ts from dual";
ResultSet rs=stmt.executeQuery(sql);
out.println("106");
Stimestamp = rs.getString(1);
//Stimestamp ="20071106153451TUHDLZZTCOLRLRVGOUMY";
out.println("111");
out.println(Stimestamp);
out.println("105");
Saddress = request.getRemoteAddr();
SRuser = request.getRemoteUser();
SRhost = request.getRemoteHost();
SRURI = request.getRequestURI();
sql="insert into tsnoop values('" + Stimestamp +"','" + Saddress + "')";
out.println("107");
stmt.executeUpdate(sql);
out.println("101");
rs.close();
stmt.close();
conn.close();
} catch (Exception e) {
System.out.println(e.getMessage());
}
}}页面显示到102 1008 1008 103 106
程序:
package address;import java.io.*;
import java.sql.*;
import java.util.*;
import java.lang.*;
import javax.servlet.*;
import javax.servlet.http.*;
public class detector extends Object
{ public detector(){
}
public void saveaddr(HttpServletRequest request, HttpServletResponse response)
throws ServletException,IOException
{
Connection conn;
Statement stmt;
String Stimestamp = "";
String Saddress = "";
String SRuser = "";
String SRhost = "";
String SRURI = "";
String sql = "";
PrintWriter out = response.getWriter();
try {
out.println("102");
Class.forName("oracle.jdbc.driver.OracleDriver");
conn= DriverManager.getConnection("jdbc:oracle:thin:@172.30.253.107:1521:lvrtest","kbadmin","jhl1000ml");
if (conn == null)
{
out.println("1009");
}else
{
out.println("1008");
} stmt = conn.createStatement();
if (stmt == null)
{
out.println("1009");
}else
{
out.println("1008");
}
out.println("103");
sql="select to_char(sysdate,'yyyymmddhh24miss') || dbms_random.string('1',20 ) as ts from dual";
ResultSet rs=stmt.executeQuery(sql);
out.println("106");
Stimestamp = rs.getString(1);
//Stimestamp ="20071106153451TUHDLZZTCOLRLRVGOUMY";
out.println("111");
out.println(Stimestamp);
out.println("105");
Saddress = request.getRemoteAddr();
SRuser = request.getRemoteUser();
SRhost = request.getRemoteHost();
SRURI = request.getRequestURI();
sql="insert into tsnoop values('" + Stimestamp +"','" + Saddress + "')";
out.println("107");
stmt.executeUpdate(sql);
out.println("101");
rs.close();
stmt.close();
conn.close();
} catch (Exception e) {
System.out.println(e.getMessage());
}
}}页面显示到102 1008 1008 103 106
严重: Error while registering Oracle JDBC Diagnosability MBean.
javax.management.MalformedObjectNameException: Invalid character '
' in value part of property
at javax.management.ObjectName.construct(Unknown Source)
at javax.management.ObjectName.<init>(Unknown Source)
at oracle.jdbc.driver.OracleDriver.registerMBeans(OracleDriver.java:303)
at oracle.jdbc.driver.OracleDriver$1.run(OracleDriver.java:213)
at java.security.AccessController.doPrivileged(Native Method)
at oracle.jdbc.driver.OracleDriver.<clinit>(OracleDriver.java:209)
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Unknown Source)
at bean.temp.<init>(temp.java:14)
at org.apache.jsp.test_jsp._jspService(test_jsp.java:64)
at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:393)
at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:320)
at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:266)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:175)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:263)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:844)
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:584)
at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447)
at java.lang.Thread.run(Unknown Source)
你引号里面的3项最后怎么都有空格啊,故意的?
或者改成
while(rs.next()){
Stimestamp=rs.getString(1);
}
顶!