你有一个错误在你的SQL语法;检查一下手册



我得到SQL语法错误。我不知道为什么。我已经检查了所有的东西,但是无法通过这个错误。我正在使用Eclipse。下面是添加用户

的代码
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;
}
}
下面是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");
}
}
}

我启动了Tomcat服务器,注册了一个帐户,但是获取的数据不是作为输出插入,而是在Workbench中获取数据。

你的SQL是错误的,它应该是:

insert into user (name,email,password) values (?,?,?)

相关内容

最新更新