Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

Strange ResultSet

0 views
Skip to first unread message

Bingle

unread,
Mar 27, 2003, 2:09:44 AM3/27/03
to
When I wrote my first database program, I met a strange problem. These SQL
statement can work correctly. The table will be created and the record will
be inserted.
Stmt.executeUpdate("CREATE TABLE COFFEES " +
"(COF_NAME VARCHAR(32), SUP_ID INTEGER, PRICE FLOAT, " +
"SALES INTEGER, TOTAL INTEGER)");

Stmt.executeUpdate(
"INSERT INTO COFFEES " +
"VALUES ('Colombian', 101, 7.99, 0, 0)");

I opened table in mySQL, the record is correct: Colombian, 101, 7.99, 0, 0
But I can't get correct resultset in JSP.

String query = "SELECT * FROM COFFEES";
ResultSet rs = Stmt.executeQuery(query);
while (rs.next()) {
s1 = rs.getString(1);
//I can't use getString("COF_NAME")
//Because it will say Column 'COF_NAME' not found.
s2 = rs.getString(2);
s3 = rs.getString(3);
s4 = rs.getString(4);
out.println(s1 + " " + s2 + " " + s3 + " " + s4 + "<br>");
}

The resule will be " pop vmxx o<br>". I know it's strange but I don't know
why. Can anyone help?

Windows 98
Tomcat 4.1.18
j2sdk 1.4.1_02
MySQL 3.23
mysql-connector-java-3.0.6-stable

Thanks in advance.
Bingle


Jon Martin Solaas

unread,
Mar 27, 2003, 7:06:53 AM3/27/03
to

"Bingle" <bin...@rogers.com> wrote in message
news:Ysxga.27443$s421....@news02.bloor.is.net.cable.rogers.com...

> When I wrote my first database program, I met a strange problem. These SQL
> statement can work correctly. The table will be created and the record
will
> be inserted.
> Stmt.executeUpdate("CREATE TABLE COFFEES " +
> "(COF_NAME VARCHAR(32), SUP_ID INTEGER, PRICE FLOAT, " +
> "SALES INTEGER, TOTAL INTEGER)");
>
> Stmt.executeUpdate(
> "INSERT INTO COFFEES " +
> "VALUES ('Colombian', 101, 7.99, 0, 0)");
>
> I opened table in mySQL, the record is correct: Colombian, 101, 7.99, 0, 0
> But I can't get correct resultset in JSP.
>
> String query = "SELECT * FROM COFFEES";
> ResultSet rs = Stmt.executeQuery(query);
> while (rs.next()) {
> s1 = rs.getString(1);
> //I can't use getString("COF_NAME")
> //Because it will say Column 'COF_NAME' not found.
> s2 = rs.getString(2);
> s3 = rs.getString(3);
> s4 = rs.getString(4);
> out.println(s1 + " " + s2 + " " + s3 + " " + s4 + "<br>");
> }
>
> The resule will be " pop vmxx o<br>". I know it's strange but I don't know
> why. Can anyone help?
>

Not all your columns are of String type, try for instance s2 =
rs.getInt(2).toString();

--
jonmarti...@mail.link.no
http://solaas.minidns.net


Sudsy

unread,
Mar 27, 2003, 10:27:58 AM3/27/03
to
"Bingle" <bin...@rogers.com> wrote in message news:<Ysxga.27443$s421....@news02.bloor.is.net.cable.rogers.com>...
> When I wrote my first database program, I met a strange problem. These SQL
> statement can work correctly. The table will be created and the record will
> be inserted.
> Stmt.executeUpdate("CREATE TABLE COFFEES " +
> "(COF_NAME VARCHAR(32), SUP_ID INTEGER, PRICE FLOAT, " +
> "SALES INTEGER, TOTAL INTEGER)");
>
> Stmt.executeUpdate(
> "INSERT INTO COFFEES " +
> "VALUES ('Colombian', 101, 7.99, 0, 0)");
>
> I opened table in mySQL, the record is correct: Colombian, 101, 7.99, 0, 0
> But I can't get correct resultset in JSP.
>
> String query = "SELECT * FROM COFFEES";
> ResultSet rs = Stmt.executeQuery(query);
> while (rs.next()) {
> s1 = rs.getString(1);
> //I can't use getString("COF_NAME")
> //Because it will say Column 'COF_NAME' not found.
> s2 = rs.getString(2);
> s3 = rs.getString(3);
> s4 = rs.getString(4);
> out.println(s1 + " " + s2 + " " + s3 + " " + s4 + "<br>");
> }

Try:

int id = rs.getInt( 2 );
float price = rs.getFloat( 3 );
int sales = rs.getInt( 4 );

You have to use the corresponding methods to extract the data
from the ResultSet.

Bingle

unread,
Mar 27, 2003, 10:43:25 AM3/27/03
to
Thank you for reply.

When I used "id = re.getInt(2)", a exception will be thrown. I don't know
why the column in resultset is "pop". In fact, all the columns are weird
"pop", "vmxx", "o".

exception
org.apache.jasper.JasperException: Invalid value for getInt() - 'pop'
at
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:2
48)
at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:295)
at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:241)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(Application
FilterChain.java:247)
at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterCh
ain.java:193)
at
org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.ja
va:260)
at
org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invok
eNext(StandardPipeline.java:643)
at
org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480)
at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)
at
org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.ja
va:191)
at
org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invok
eNext(StandardPipeline.java:643)
at
org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase
.java:493)
at
org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invok
eNext(StandardPipeline.java:641)
at
org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480)
at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)
at
org.apache.catalina.core.StandardContext.invoke(StandardContext.java:2415)
at
org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:180
)
at
org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invok
eNext(StandardPipeline.java:643)
at
org.apache.catalina.valves.ErrorDispatcherValve.invoke(ErrorDispatcherValve.
java:170)
at
org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invok
eNext(StandardPipeline.java:641)
at
org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:172
)
at
org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invok
eNext(StandardPipeline.java:641)
at
org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480)
at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)
at
org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java
:174)
at
org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invok
eNext(StandardPipeline.java:643)
at
org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480)
at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)
at org.apache.coyote.tomcat4.CoyoteAdapter.service(CoyoteAdapter.java:223)
at
org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:432)
at
org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.processConne
ction(Http11Protocol.java:386)
at
org.apache.tomcat.util.net.TcpWorkerThread.runIt(PoolTcpEndpoint.java:534)
at
org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.jav
a:530)
at java.lang.Thread.run(Thread.java:536)


root cause

javax.servlet.ServletException: Invalid value for getInt() - 'pop'
at
org.apache.jasper.runtime.PageContextImpl.handlePageException(PageContextImp
l.java:533)
at org.apache.jsp.mysqltest_jsp._jspService(mysqltest_jsp.java:92)
at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:137)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
at
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:2
04)
at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:295)
at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:241)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(Application
FilterChain.java:247)
at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterCh
ain.java:193)
at
org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.ja
va:260)
at
org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invok
eNext(StandardPipeline.java:643)
at
org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480)
at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)
at
org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.ja
va:191)
at
org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invok
eNext(StandardPipeline.java:643)
at
org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase
.java:493)
at
org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invok
eNext(StandardPipeline.java:641)
at
org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480)
at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)
at
org.apache.catalina.core.StandardContext.invoke(StandardContext.java:2415)
at
org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:180
)
at
org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invok
eNext(StandardPipeline.java:643)
at
org.apache.catalina.valves.ErrorDispatcherValve.invoke(ErrorDispatcherValve.
java:170)
at
org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invok
eNext(StandardPipeline.java:641)
at
org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:172
)
at
org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invok
eNext(StandardPipeline.java:641)
at
org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480)
at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)
at
org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java
:174)
at
org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invok
eNext(StandardPipeline.java:643)
at
org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480)
at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)
at org.apache.coyote.tomcat4.CoyoteAdapter.service(CoyoteAdapter.java:223)
at
org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:432)
at
org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.processConne
ction(Http11Protocol.java:386)
at
org.apache.tomcat.util.net.TcpWorkerThread.runIt(PoolTcpEndpoint.java:534)
at
org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.jav
a:530)
at java.lang.Thread.run(Thread.java:536)

org.apache.jasper.JasperException: Invalid value for getInt() - 'pop'

0 new messages