java中 数据库插入语句无法执行
sql="INSERTINTOkc(number,name,sdate,fdate,courseName,courseType,student,amount,introd...
sql="INSERT INTO kc (number, name, sdate, fdate, courseName, courseType, student, amount, introduction) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?);";
PreparedStatement ps=dataBase.getCon().prepareStatement(sql);
int count=1;
ps.setString(count++, number);
ps.setString(count++, name);
ps.setDate(count++, teachingResults.getSdate());
ps.setDate(count++, teachingResults.getFdate());
ps.setString(count++, teachingResults.getCourseName());
ps.setString(count++, teachingResults.getCourseType());
ps.setString(count++, teachingResults.getStudent());
ps.setString(count++, teachingResults.getAmount());
ps.setString(count++, teachingResults.getIntroduction());
ps.execute(sql);
报错
Stacktraces
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
count确实是从1开始 之前查询语句也是这种写法没问题
也不是“;”的问题
ps.executeUpdate(sql)也没用 展开
PreparedStatement ps=dataBase.getCon().prepareStatement(sql);
int count=1;
ps.setString(count++, number);
ps.setString(count++, name);
ps.setDate(count++, teachingResults.getSdate());
ps.setDate(count++, teachingResults.getFdate());
ps.setString(count++, teachingResults.getCourseName());
ps.setString(count++, teachingResults.getCourseType());
ps.setString(count++, teachingResults.getStudent());
ps.setString(count++, teachingResults.getAmount());
ps.setString(count++, teachingResults.getIntroduction());
ps.execute(sql);
报错
Stacktraces
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
count确实是从1开始 之前查询语句也是这种写法没问题
也不是“;”的问题
ps.executeUpdate(sql)也没用 展开
8个回答
展开全部
int count=0;
这么明显的错误。你这是从2开始的
ps.setString(count++, name); 这里的count++已经为2了。
去掉sql最后的分号
使用ps.executeUpdate();提交。这是关键
更多追问追答
追问
先执行后加
追答
ps.executeUpdate();
提交,你错用了ps.execute(sql);
PreparedStatement ps=dataBase.getCon().prepareStatement(sql);
看到了吗
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
你把int count=1换成int count=0试试
追问
试过了 没用
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
是不是(?, ?, ?, ?, ?, ?, ?, ?, ?)这里多了个“;”号
追问
不是
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询