-2

Below code is showing we java.sql.SQLException. Can anyone help me in fixing this

Class.forName("oracle.jdbc.driver.OracleDriver");

String lname=request.getParameter("lastname");
String uname=request.getParameter("username");
String fname=request.getParameter("firstname");
String cemail=request.getParameter("email");
String pswd=request.getParameter("password");
String cpswd=request.getParameter("conformpassword");
String sex=request.getParameter("gender");
long phon=Long.parseLong(request.getParameter("mobile"));

Connection con = DriverManager.getConnection("jdbc:oracle:thin:@localhost:1521:XE", "system", "admin");
Statement st = con.createStatement();
ResultSet rs = st.executeQuery("insert into users values('" + uname + "','" + fname + "','"  + lname + "','" + cpswd + "',"+ phon + ",'" + cemail + "','" + sex + "');");
James Z
  • 12,209
  • 10
  • 24
  • 44
  • What are the values of the variables being passed in? – Ocracoke Mar 24 '16 at 19:00
  • 2
    Are we supposed to guess what the exception is? Also, you're code is vulnerable for sql injection. – James Z Mar 24 '16 at 19:00
  • The ORA-00911 is from the semicolon at the end of the statement, which should not be there. But you should be using a prepared statement and bind variables. – Alex Poole Mar 24 '16 at 19:14

1 Answers1

0

Instead of:

Statement st = con.createStatement();
ResultSet rs = st.executeQuery("insert into users values('" + uname + "','" + fname + "','"  + lname + "','" + cpswd + "',"+ phon + ",'" + cemail + "','" + sex + "')");

I'd suggest doing the following:

PreparedStatement st = con.prepareeStatement("insert into users values(?,?,?,?,?,?,?);");
st.setString(1, uname);
st.setString(2, fname); 
st.setString(3, lname); 
st.setString(4, cpswd); 
st.setLong(5, phon); 
st.setString(6, cemail); 
st.setString(7, sex);
ResultSet rs = st.executeQuery();

Your problem is not evident by your question, but using PreparedStatement as I have will prevent future problems you will encounter. I hope that helps.

hd1
  • 33,938
  • 5
  • 80
  • 91