Java 是什么导致此MySQLSyntaxError异常?

Java 是什么导致此MySQLSyntaxError异常?,java,mysql,exception,jsp,Java,Mysql,Exception,Jsp,我编写这个查询(在java类中)是为了从MySQL数据库中选择一些信息 并在jsp页面上查看它 从中选择讲师名称 讲师、部门、教授地点 teach.student\u id='3'和teach.section =section.number和section.讲师\u id=讲师.id 但也有例外发生 javax.servlet.ServletException: com.mysql.jdbc.exceptions.MySQLSyntaxErrorException: 您的SQL语法有错误; 检查

我编写这个查询(在java类中)是为了从MySQL数据库中选择一些信息 并在jsp页面上查看它

从中选择讲师名称 讲师、部门、教授地点 teach.student\u id='3'和teach.section =section.number和section.讲师\u id=讲师.id

但也有例外发生

javax.servlet.ServletException: com.mysql.jdbc.exceptions.MySQLSyntaxErrorException: 您的SQL语法有错误; 检查相应的手册 您的MySQL服务器版本 使用near的正确语法 “.student_id='3'和teach.section”= 第3.1节编号和 第1行的章节.讲师id=ins'

,

顺便说一句,我是用PhpMyAdmin写的,这是我的工作

应用服务器:Sun GlassFish企业服务器v2.1

请帮帮我


关于

您需要在
'3'
后面加一个空格。似乎缺少一个空格。student_id='3'和->'。student_id='3'和

如果您的查询与您显示的完全相同:

SELECT instructor.name FROM instructor,section,teach WHERE teach.student_id='3'AND
    teach.section = section.number AND section.instructor_id= instructor.ID
然后您需要在上面显示的第一行的
'3'
之后、
之前和
之前留一个空格。

什么是“teach.student\u id”的数据类型?它是数字还是varchar。如果是数字,则无需将“3”放在单引号内。 例如 teach.student_id=3

谢谢大家

我是这样在java类中编写查询的

结果集 =stmt.executeQuery(“选择讲师.name”+ “来自讲师、部门、教师”+ “WHERE teach.student_id=“+”“+idd+””+ “和teach.section=section.number 和第1.1.1节讲师id= 教师身份证)

然后我消除所有行,把查询放在一行中,就像这样,然后它就解决了


问候

谢谢Alex。。我解决了这个问题,我用错误的方式用java编写查询。你应该研究如何执行参数化查询,这样你就不必处理所有这些字符串操作,从而避免这些类型的错误。这样做会使你自己暴露在sql注入攻击之下。使用PreparedStatement。