【菜鸟问】程序问题:You have an error in your SQL syntax 错误

ylchen.xd 发布于 2012/11/01 15:14
阅读 6K+
收藏 0

 在学jdbc编程,有两段代码都出现com.mysql.jdbc.exceptions.MySQLSyntaxErrorException

但是SQL语句手动输入MySQL却正常,不知道什么回事,帮忙解释下。

代码如下:

1

int result = ed.insertData("insert into jdbc_test(jdbc_name, jdbc_desc)" 
			+ "select s.student_name, t.teacher_name"
			+ "from student_table s, teacher_table t");
			+ "where s.java_teacher = t.teacher_id");

2

ResultSet rs = stmt.executeQuery("select s.* , teacher_name" + " from student_table s , teacher_table t"
 + "where t.teacher_id = s.java_teacher")
 )
加载中
0
Wentasy
Wentasy

第一个SQL插入数据你有values吗?

第二个SQL teacher_table t和where之间有空格吗?

SQL和JDBC还是有差别的。

既然报SQL语法错误,那肯定是你SQL写错了。我宁愿相信编译器。

ylchen.xd
ylchen.xd
编译器也可以不相信的么?= =
ylchen.xd
ylchen.xd
找到了,where前面没有加空格。照这样每个语句前面全加空格就正常了。
0
红薯
红薯
你的查询里用的都是别名,可是前面的字段却没有加上别名,例如 t.teacher_name 之类的
ylchen.xd
ylchen.xd
如二楼所说,是teacher_table和where之间缺少空格的问题,两段代码都这样检查修改后程序就正常了。别名的话这样写好像是ok的,在MySQL上工作正常。
0
倚小丁
倚小丁
你这个 在Eclipse 不会报错?
ylchen.xd
ylchen.xd
确实在eclipse里面报错,但是在MySQL里面输入没有错
0
八宝旗
八宝旗

好的习惯

在拼接sql字符串时,每行字符串都用空格开始,这样就不用考虑上一行字符串最后是否有空格了


返回顶部
顶部