各位大虾:JavaBean查询mysql产生的问题:You have an error in your SQL syntax

今天我刚写一个小小的webproject学习Mysql的条件查询。


结果出来这样的错误。


出错提示: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 '='abc'' at line 1。 (其中‘abc’是我执行查询时输入的数据),我想问题应该出在图二所示的代码里,但不知怎么更正。

 



运行环境:MyEclipse7+tomcat6+jdk5+mysql5。

图1:index页面



 

图二:part_result(从index页面得到参数查询数据库)



 

图三:BD_result(取得查询结果给servlet)



 

 

图四:QyeryDB_servlet将查询参数传给JavaBean和从javabean里面的到数据库返回结果,转发回index



 





 

这个其实很简单啊!

你吧 select * from test_db where sql_type=sql_type_value

这句sql 打印出来 一看就知道 是什么问题!
sql_type 要么乱码要么为空 !!
试试看!
最后 建议!如果是练习这么写可以! 项目里面最后别这么干!参数直接到sql 语句里面是不合理或者危险的!

提示的错误信息是SQL语法有错误,问题应该在这个地方:
[code="java"]String sql = "select * from test_db where"+sql_type + "='" + sql_typeValue + "'";[/code],
关键字where后面少了个空格,导致where和参数sql_type的值连在了一起,出现语法错误,修改成如下语句就可以了:
[code="java"]String sql = "select * from test_db where "+sql_type + " = '" + sql_typeValue + "'";[/code]。

楼上正解

用PreparedStatement类的set参数的方式去做,这样也安全。