I am getting SQL Syntax Error. I don't know why. I have checked everything but couldn't get through this error. I am using Eclipse. Here is the code for adding user
package com.DOA;
import java.sql.Connection;
import java.sql.PreparedStatement;
import com.User.UserDetails;
public class UserDOA {
private Connection conn;
public UserDOA(Connection conn) {
super();
this.conn = conn;
}
public boolean addUser(UserDetails us) {
boolean f = false;
try {
String query = "insert into user values (name,email,password) (?,?,?)";
PreparedStatement ps = conn.prepareStatement(query);
ps.setString(1, us.getName());
ps.setString(2, us.getEmail());
ps.setString(3, us.getPassword());
int i = ps.executeUpdate();
if(i==1) {
f=true;
}
}catch(Exception e) {
e.printStackTrace();
}
return f;
}
}
Here is the code of Servlet
package com.Servlet;
import java.io.IOException;
import java.io.PrintWriter;
import java.sql.Connection;
import com.DOA.UserDOA;
import com.User.UserDetails;
import com.DB.DBConnect;
import jakarta.servlet.ServletException;
import jakarta.servlet.annotation.WebServlet;
import jakarta.servlet.http.HttpServlet;
import jakarta.servlet.http.HttpServletRequest;
import jakarta.servlet.http.HttpServletResponse;
@WebServlet("/UserServlet")
public class UserServlet extends HttpServlet{
public void doPost(HttpServletRequest request, HttpServletResponse response ) throws ServletException,IOException
{
String name = request.getParameter("fname");
String email = request.getParameter("uemail");
String password = request.getParameter("upassword");
UserDetails us = new UserDetails();
us.setName(name);
us.setEmail(email);
us.setPassword(password);
UserDOA dao = new UserDOA(DBConnect.getConn());
boolean f=dao.addUser(us);
PrintWriter out = response.getWriter();
if(f) {
out.print("User Register Successfully");
}else {
out.print("Data not insert");
}
}
}
I started the Tomcat server, registered an account, but getting data not insert as an output instead of getting the data in the Workbench.
Your SQL is wrong, it should be:
insert into user (name,email,password) values (?,?,?)