mysql插入错误
mysql插入异常
com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '?,?)' at line 1
SqlBean
JavaBean
------解决方案--------------------
你debug 看看最上面的数据是多少。现在报语法错误了。
------解决方案--------------------
sql格式错误~肯定是SQL语句的问题:
Insert into Stu(name,age,sex,class) values (?,?,?,?) 换成这个试试:
insert into Stu(name,age,sex,class) values(?,?,?,?) values后面去空格
如果不是这个问题的话肯定就是你自己封装的DAO生成的SQL语句格式有问题。打断点打印一下SQL在数据库工具里面跑一下看看有错没
------解决方案--------------------
pre=con.prepareStatement(sql);
pre.setString(1, jBean.getName());
pre.setInt(2, jBean.getAge());
pre.setString(3, jBean.getSex());
pre.setString(4, jBean.getAclass());
这个debug 数据对不
------解决方案--------------------
是不是你values后面多了个空格啊
com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '?,?)' at line 1
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// TODO Auto-generated method stub
response.setContentType("text/html");
request.setCharacterEncoding("utf-8");
response.setCharacterEncoding("utf-8");
String name=request.getParameter("name");
String sage=request.getParameter("age");
int age=Integer.parseInt(sage);
String sex=request.getParameter("sex");
String aclass=request.getParameter("class");
JavaBean jBean=new JavaBean();
jBean.setName(name);
jBean.setAge(age);
jBean.setSex(sex);
jBean.setAclass(aclass);
String sql="Insert into Stu(name,age,sex,class) values (?,?,?,?)";
SqlBean sBean=new SqlBean();
int count=sBean.getInsert(sql, jBean);
String urlString="";
if(count>0){
urlString="SearchList.jsp";
}else{
urlString="error.jsp";
request.setAttribute("error", "插入数据");
}
request.getRequestDispatcher(urlString).forward(request, response);
}
SqlBean
public int getInsert(String sql,JavaBean jBean) {
int count=0;
try {
pre=con.prepareStatement(sql);
pre.setString(1, jBean.getName());
pre.setInt(2, jBean.getAge());
pre.setString(3, jBean.getSex());
pre.setString(4, jBean.getAclass());
count=pre.executeUpdate(sql);
} catch (SQLException e) {
// TODO: handle exception
e.printStackTrace();
}
finally{
try {
pre.close();
con.close();
} catch (SQLException e) {
// TODO: handle exception
e.printStackTrace();
}
}
return count;
}
JavaBean
public class JavaBean {
private int id;
private String name;
private int age;
private String sex;
private String aclass;
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
public String getSex() {
return sex;
}
public void setSex(String sex) {
this.sex = sex;
}
public String getAclass() {
return aclass;
}
public void setAclass(String aclass) {
this.aclass = aclass;
}
}
------解决方案--------------------
你debug 看看最上面的数据是多少。现在报语法错误了。
------解决方案--------------------
sql格式错误~肯定是SQL语句的问题:
Insert into Stu(name,age,sex,class) values (?,?,?,?) 换成这个试试:
insert into Stu(name,age,sex,class) values(?,?,?,?) values后面去空格
如果不是这个问题的话肯定就是你自己封装的DAO生成的SQL语句格式有问题。打断点打印一下SQL在数据库工具里面跑一下看看有错没
------解决方案--------------------
pre=con.prepareStatement(sql);
pre.setString(1, jBean.getName());
pre.setInt(2, jBean.getAge());
pre.setString(3, jBean.getSex());
pre.setString(4, jBean.getAclass());
这个debug 数据对不
------解决方案--------------------
是不是你values后面多了个空格啊