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

[998 byte] By [rachna_arora82a] at [2007-11-26 13:34:06]
# 1
> 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.
gimbal2a at 2007-7-7 22:15:11 > top of Java-index,Java Essentials,New To Java...
# 2

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

Novice_inJAVAa at 2007-7-7 22:15:11 > top of Java-index,Java Essentials,New To Java...
# 3

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

rachna_arora82a at 2007-7-7 22:15:11 > top of Java-index,Java Essentials,New To Java...
# 4

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

cybervink2000a at 2007-7-7 22:15:11 > top of Java-index,Java Essentials,New To Java...
# 5

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)

rachna_arora82a at 2007-7-7 22:15:11 > top of Java-index,Java Essentials,New To Java...
# 6

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)

rachna_arora82a at 2007-7-7 22:15:11 > top of Java-index,Java Essentials,New To Java...
# 7

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

rachna_arora82a at 2007-7-7 22:15:11 > top of Java-index,Java Essentials,New To Java...
# 8
Which line causing Null pointer Exception.Better to validate for null values too.
cybervink2000a at 2007-7-7 22:15:11 > top of Java-index,Java Essentials,New To Java...
# 9
how can i check thati dont have any idea
rachna_arora82a at 2007-7-7 22:15:11 > top of Java-index,Java Essentials,New To Java...
# 10
Post the complete code and the stack trace too.Will resolve it here.
cybervink2000a at 2007-7-7 22:15:11 > top of Java-index,Java Essentials,New To Java...
# 11
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 > top of Java-index,Java Essentials,New To Java...
# 12

//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

rachna_arora82a at 2007-7-7 22:15:11 > top of Java-index,Java Essentials,New To Java...
# 13
out.println(e.printStackTrace()); i m not using thisi m just writingout.println(e)
rachna_arora82a at 2007-7-7 22:15:11 > top of Java-index,Java Essentials,New To Java...
# 14
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 > top of Java-index,Java Essentials,New To Java...
# 15
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
rachna_arora82a at 2007-7-21 15:52:30 > top of Java-index,Java Essentials,New To Java...
# 16

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 > top of Java-index,Java Essentials,New To Java...
# 17
> 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.
aniseeda at 2007-7-21 15:52:30 > top of Java-index,Java Essentials,New To Java...
# 18
> how can i check that> i dont have any ideaThen you have no business writing Java.%
duffymoa at 2007-7-21 15:52:30 > top of Java-index,Java Essentials,New To Java...