user4768611
user4768611

Reputation:

how to retrieve character values from table in mysql?

I insert data in mysql database like as-

create table details(loginid varchar(55),interser1 char,interser2 char,interser3 char);
insert into details  values("1",'y','n','y');

when i am retriving in jsp-

ResultSet rs=st.executeQuery("select * from interest where loginid='1'");
String interest1=rs.getString(2);//but at index-2 value is character.
String interest2=rs.getString(3);
String interest3=rs.getString(4);

this is giving me Error-

SEVERE: Servlet.service() for servlet [jsp] in context with path [/more_value_in_param] threw exception [An exception occurred processing JSP page /display.jsp at line 19

16: Connection con=CommonUtil.getConnection();
17: Statement st=con.createStatement();
18: ResultSet rs=st.executeQuery("select * from interest where loginid='1'");
19: String interest1=rs.getString(2);
20: String interest2=rs.getString(3);
21: String interest3=rs.getString(4);
22: ResultSet rs1=st.executeQuery("select * from details where loginid='1'");


Stacktrace:] with root cause
java.sql.SQLException: Before start of result set
    at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:1073)
    at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:987)
    at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:982)
    at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:927)
    at com.mysql.jdbc.ResultSetImpl.checkRowPos(ResultSetImpl.java:841)
    at com.mysql.jdbc.ResultSetImpl.getStringInternal(ResultSetImpl.java:5650)
    at com.mysql.jdbc.ResultSetImpl.getString(ResultSetImpl.java:5570)
    at org.apache.jsp.display_jsp._jspService(display_jsp.java:84)
    at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:728)
    at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:432)
    at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:390)
    at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:334)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:728)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:305)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
    at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
    at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:222)
    at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:123)
    at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:502)
    at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:171)
    at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:100)
    at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:953)
    at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118)
    at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:408)
    at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1041)
    at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:603)
    at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:312)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
    at java.lang.Thread.run(Unknown Source)

how to retrieve character values from table in mysql?

Upvotes: 0

Views: 126

Answers (1)

Tony Vu
Tony Vu

Reputation: 4361

I think the problem is that you need to call rs.next() to ensure there is result first before retrieving any result. So you will need to have:

ResultSet rs=st.executeQuery("select * from interest where loginid='1'");
while (rs.next()) {
   String interest1=rs.getString(2);
   String interest2=rs.getString(3);
   String interest3=rs.getString(4);
}

For you question, you can get the character by calling rs.getString(2).charAt(0). By the way, if possible, please try to have this logic in your controller or action, not in JSP.

Upvotes: 1

Related Questions