duplicate entries
i m saving name and email id of student in database
i dont want to enter already registered students
String ans1=(request.getParameter("R1"));
//String name=(request.getParameter("T2"));
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
Connection con=DriverManager.getConnection("jdbc:odbc:exam","","");
Statement s=con.createStatement();
Result rs;
String value = (session.getValue("s1")).toString();
String name=(request.getParameter("T1"));
rs=s.executeQuery("select emailid from check");
while(rs.next())
{
if(ans1==rs.getString(1))
{
out.println("ALREADY REGISTERED");
}
else
{
PreparedStatement st=con.prepareStatement("update check set ans1=? where name Like ?");
st.setString(1,ans1);
st.setString(2,value);
st.executeUpdate();
out.println(value);
}
}
this is code but its not working
plz answer if anyone know the probblem
> if(ans1==rs.getString(1))You cannot use == to compare objects (unless you want to compare their physical address in memory). You need to use the String equals() method.
hey rachna,
The logic of would bomb at runtime at a later stage ......... and as suggested if ur trying to compare the contents of the String object then use the equals method
Gimme more details of the design of the table that would be helpful.
thanks n regards
naveen m
Message was edited by:
Novice_inJAVA
String ans1=(request.getParameter("R1"));
//String name=(request.getParameter("T2"));
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
Connection con=DriverManager.getConnection("jdbc:odbc:exam","","");
PreparedStatement s;
ResultSet rs;
String value = (session.getValue("s1")).toString();
String name=(request.getParameter("T1"));
s=con.prepareStatement("select emailid from check where emailid=?");
s.setString(1,value);
s.executeQuery();
if (rs.)//want to know is resultset have records
{
PreparedStatement st=con.prepareStatement("update check set ans1=? where name Like ?");
st.setString(1,ans1);
st.setString(2,value);
st.executeUpdate();
out.println(value);
}
else
{
out.println("ALREADY REGISTERED");
}
table have cols
1 name
2 emailid
3 ans1 answer of questions 1(its online test website)
4ans2
and so on
regards
rachna
Here is the simple way to do this.
String sql = "Select 1 From check Where name = '" + submitted_name_goes_here + "'";
Execute the above query and iterate the resultset.
if(rs.next()){
//Say the username is already used.....
}
else{
//Insert statement will goes here
}
Regards
Vinay
hi vinay
thanx for answering.
now my code is
String ans1=(request.getParameter("R1"));
//String name=(request.getParameter("T2"));
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
Connection con=DriverManager.getConnection("jdbc:odbc:exam","","");
PreparedStatement s;
ResultSet rs;
String value = (session.getValue("s1")).toString();
String name=(request.getParameter("T1"));
s=con.prepareStatement("select emailid from check where emailid=?");
s.setString(1,value);
rs=s.executeQuery();
rs.next();
//int ResultCount = rs.getInt(rowcount) ;
if (rs.next())
{
out.println("already reg");
}
else
{
PreparedStatement st=con.prepareStatement("update check set ans1=? where name Like ?");
st.setString(1,ans1);
st.setString(2,value);
st.executeUpdate();
out.println(value);
}
and now its showing error
javax.servlet.ServletException
at org.apache.jasper.runtime.PageContextImpl.handlePageException(PageContextImpl.java:384)
at _0005conline_0002ejsponline_jsp_0._jspService(_0005conline_0002ejsponline_jsp_0.java:101)
at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:126)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:865)
at org.apache.jasper.runtime.JspServlet$JspServletWrapper.service(JspServlet.java:161)
at org.apache.jasper.runtime.JspServlet.serviceJspFile(JspServlet.java:247)
at org.apache.jasper.runtime.JspServlet.service(JspServlet.java:352)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:865)
at org.apache.tomcat.core.ServiceInvocationHandler.method(ServletWrapper.java:626)
at org.apache.tomcat.core.ServletWrapper.handleInvocation(ServletWrapper.java:534)
at org.apache.tomcat.core.ServletWrapper.handleRequest(ServletWrapper.java:378)
at org.apache.tomcat.core.Context.handleRequest(Context.java:644)
at org.apache.tomcat.core.ContextManager.service(ContextManager.java:440)
at org.apache.tomcat.service.http.HttpConnectionHandler.processConnection(HttpConnectionHandler.java:144)
at org.apache.tomcat.service.TcpConnectionThread.run(TcpEndpoint.java:310)
at java.lang.Thread.run(Thread.java:484)
Root cause:
java.lang.NullPointerException
at _0005conline_0002ejsponline_jsp_0._jspService(_0005conline_0002ejsponline_jsp_0.java:70)
at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:126)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:865)
at org.apache.jasper.runtime.JspServlet$JspServletWrapper.service(JspServlet.java:161)
at org.apache.jasper.runtime.JspServlet.serviceJspFile(JspServlet.java:247)
at org.apache.jasper.runtime.JspServlet.service(JspServlet.java:352)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:865)
at org.apache.tomcat.core.ServiceInvocationHandler.method(ServletWrapper.java:626)
at org.apache.tomcat.core.ServletWrapper.handleInvocation(ServletWrapper.java:534)
at org.apache.tomcat.core.ServletWrapper.handleRequest(ServletWrapper.java:378)
at org.apache.tomcat.core.Context.handleRequest(Context.java:644)
at org.apache.tomcat.core.ContextManager.service(ContextManager.java:440)
at org.apache.tomcat.service.http.HttpConnectionHandler.processConnection(HttpConnectionHandler.java:144)
at org.apache.tomcat.service.TcpConnectionThread.run(TcpEndpoint.java:310)
at java.lang.Thread.run(Thread.java:484)
hi vinay
thanx for answering.
now my code is
String ans1=(request.getParameter("R1"));
//String name=(request.getParameter("T2"));
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
Connection con=DriverManager.getConnection("jdbc:odbc:exam","","");
PreparedStatement s;
ResultSet rs;
String value = (session.getValue("s1")).toString();
String name=(request.getParameter("T1"));
s=con.prepareStatement("select emailid from check where emailid=?");
s.setString(1,value);
rs=s.executeQuery();
rs.next();
//int ResultCount = rs.getInt(rowcount) ;
if (rs.next())
{
out.println("already reg");
}
else
{
PreparedStatement st=con.prepareStatement("update check set ans1=? where name Like ?");
st.setString(1,ans1);
st.setString(2,value);
st.executeUpdate();
out.println(value);
}
and now its showing error
javax.servlet.ServletException
at org.apache.jasper.runtime.PageContextImpl.handlePageException(PageContextImpl.java:384)
at _0005conline_0002ejsponline_jsp_0._jspService(_0005conline_0002ejsponline_jsp_0.java:101)
at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:126)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:865)
at org.apache.jasper.runtime.JspServlet$JspServletWrapper.service(JspServlet.java:161)
at org.apache.jasper.runtime.JspServlet.serviceJspFile(JspServlet.java:247)
at org.apache.jasper.runtime.JspServlet.service(JspServlet.java:352)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:865)
at org.apache.tomcat.core.ServiceInvocationHandler.method(ServletWrapper.java:626)
at org.apache.tomcat.core.ServletWrapper.handleInvocation(ServletWrapper.java:534)
at org.apache.tomcat.core.ServletWrapper.handleRequest(ServletWrapper.java:378)
at org.apache.tomcat.core.Context.handleRequest(Context.java:644)
at org.apache.tomcat.core.ContextManager.service(ContextManager.java:440)
at org.apache.tomcat.service.http.HttpConnectionHandler.processConnection(HttpConnectionHandler.java:144)
at org.apache.tomcat.service.TcpConnectionThread.run(TcpEndpoint.java:310)
at java.lang.Thread.run(Thread.java:484)
Root cause:
java.lang.NullPointerException
at _0005conline_0002ejsponline_jsp_0._jspService(_0005conline_0002ejsponline_jsp_0.java:70)
at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:126)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:865)
at org.apache.jasper.runtime.JspServlet$JspServletWrapper.service(JspServlet.java:161)
at org.apache.jasper.runtime.JspServlet.serviceJspFile(JspServlet.java:247)
at org.apache.jasper.runtime.JspServlet.service(JspServlet.java:352)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:865)
at org.apache.tomcat.core.ServiceInvocationHandler.method(ServletWrapper.java:626)
at org.apache.tomcat.core.ServletWrapper.handleInvocation(ServletWrapper.java:534)
at org.apache.tomcat.core.ServletWrapper.handleRequest(ServletWrapper.java:378)
at org.apache.tomcat.core.Context.handleRequest(Context.java:644)
at org.apache.tomcat.core.ContextManager.service(ContextManager.java:440)
at org.apache.tomcat.service.http.HttpConnectionHandler.processConnection(HttpConnectionHandler.java:144)
at org.apache.tomcat.service.TcpConnectionThread.run(TcpEndpoint.java:310)
at java.lang.Thread.run(Thread.java:484)
hi vinay
thanx for answering.
now my code is
try
{
String ans1=(request.getParameter("R1"));
//String name=(request.getParameter("T2"));
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
Connection con=DriverManager.getConnection("jdbc:odbc:exam","","");
PreparedStatement s;
ResultSet rs;
String value = (session.getValue("s1")).toString();
String name=(request.getParameter("T1"));
s=con.prepareStatement("select emailid from check where emailid=?");
s.setString(1,value);
rs=s.executeQuery();
rs.next();
//int ResultCount = rs.getInt(rowcount) ;
if (rs.next())
{
out.println("already reg");
}
else
{
PreparedStatement st=con.prepareStatement("update check set ans1=? where name Like ?");
st.setString(1,ans1);
st.setString(2,value);
st.executeUpdate();
out.println(value);
}
}catch(Exception e)
{
out.println(e)
}
its throwing error null pointer exception
regards
rachna
Which line causing Null pointer Exception.Better to validate for null values too.
how can i check thati dont have any idea
Post the complete code and the stack trace too.Will resolve it here.
When you post code, please use[code] and [/code] tags as described in [url= http://forum.java.sun.com/help.jspa?sec=formatting ]Formatting tips[/url] on the message entry page. It makes it much easier to read.
mlka at 2007-7-7 22:15:11 >

//code
<%
try
{
String ans1=(request.getParameter("R1"));
//String name=(request.getParameter("T2"));
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
Connection con=DriverManager.getConnection("jdbc:odbc:exam","","");
PreparedStatement s;
ResultSet rs;
String value = (session.getValue("s1")).toString();
String name=(request.getParameter("T1"));
s=con.prepareStatement("select emailid from check where emailid=?");
s.setString(1,value);
rs=s.executeQuery();
if (rs.next())
{
out.println("already reg");
}
else
{
PreparedStatement st=con.prepareStatement("update check set ans1=? where name Like ?");
st.setString(1,ans1);
st.setString(2,value);
st.executeUpdate();
out.println(value);
}
}catch(Exception e)
{
out.println(e.printStackTrace());
}
%>
</BODY>
</HTML>
//code
this is the code
and when throws a NULLPOINTER EXCEPTION
out.println(e.printStackTrace()); i m not using thisi m just writingout.println(e)
As I have posted in your cross-thread, nasty stuff mixing database and JSPs. Move the DB out into its own real class.(use e.printStackTrace( out ), or better yet a real logging tool)
mlka at 2007-7-7 22:15:11 >

i m doing designing in htmlfor saving data in database i m using jsp with htmlnot getting u wat u want to sayby separating db part
Hey wht i understand from your code is that if a user is registered already then he gets out.println("already reg");
And if hes not already registered i.e. theres no entry in the check table, then u r trying
PreparedStatement st=con.prepareStatement("update check set ans1=? where name Like ?");
So its obvious that u r trying to update a non existing field because ur where clause is going to return NULL
And secondly your code does not explain exactly wht u r trying to do as ur table contains fields name, emailid, ans1 etc and u r trying to update the field ans1 where name = something and at the same time ur also checking that the user is exsisting or not and when he does he will simply get result that he is already registered and only if he is not registered he gets updated. Its kind of weird logic. U need to rework on ur logic first
aveea at 2007-7-21 15:52:30 >

> U need to rework on ur logic firstThat's what everyone meant by separating the DB part from the JSP. Writing code for database interactions in JSP is not advisable because it makes code harder to debug, as in the present case.
> how can i check that> i dont have any ideaThen you have no business writing Java.%