
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个回答
展开全部
你字段就叫 number ,那不是数据库里面的关键字吗?建议你使用上面的语句执行一个简单的插入操作看看可以不。。。
追问
number和name 都是定义过的字符串
追答
我知道我是说你在建一个 test表里面就有id,name 两个字段,然后执行上面的语句把插入的值写死,看看能成功不,还有你别用count,直接写成 1.2.。。。。8
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
调试一下count ,字段编号应该也是从0开始的,你把count设为-1试试。或者直接写0,1,...,8 。
追问
是从1开始的 改0没用
追答
额 ,那应该是id你是使用默认的。所以你的字段从1开始。 建议,好好的对应下语句中的字段和数据库中的字段,和值的类型是否全部对应上了。或者有可能你得到的数据有空,强行去插入非空字段。 只能慢慢排查了,不测试可能性,是有点难找到问题的。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
int count=0,尝试了没?
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询