Java中executeQuery方法的问题

String target = gui.txt.getText();
Statement db = con.createStatement();
ResultSet rs = db.executeQuery("Select class from table where name = target");

其中的:
ResultSet rs = db.executeQuery("Select class from table where name = target");
这句为什么抛错呢?利用排除法已经排除程序的其他语句错误的可能,只剩这句一直不解。整个引号里面好像都不起作用,eclipse里面没有标记颜色,target变量也显示never used

你要用变量作为参数的话,不能用Statement,要用PreparedStatement.
String target = gui.txt.getText();
PreparedStatement pstmt = con.prepareStatement("Select class from table where name = ?");
pstmt.SetString(1, target );
然后 resultSet rs = pstmt.executeQuery();
就可以了。这PreparedStatement是专用来设置参数用的,Statement只能是在sql完全确定的情况下才能用。
温馨提示:内容为网友见解,仅供参考
第1个回答  2012-08-24
where name = 'target'
注意这对单引号。因为是字符串。追问

可是这里的target不是变量吗?上面有一句:
String target = gui.txt.getText();

改了以后 出现了
warning: FT_OpenType_Validate is disabled. Replace FreeType2 with otvalid-enabled version.
请问这是什么警告?

第2个回答  2012-08-24
ResultSet rs = db.executeQuery("Select class from table where name = ‘target’");追问

可是这里的target不是变量吗?上面有一句:
String target = gui.txt.getText();

追答

那请你这样写

ResultSet rs = db.executeQuery("Select class from table where name =‘“ target”’");

本回答被网友采纳

问Java的statement.executeQuery()操作
1:有2个字符串"select * from name"和"where id=2",name和where应该有空格分割 2:没有id字段或字段不正确 3:建议先在查询分析器里测试一下SQL语句是否可以正常执行 ResultSet可以用来任何结果集,包括任意的条件查询,所以这个错误基本上可以排除JAVA 对象错误 ...

executequery方法出错
其实不需要用executeQuery()方法,用execute()就可以了啊 如果你的SQL 语句是诸如update,insert的更新语句,应该用statement的execute()方法,如果用的是statement的executeQuery()就会出现上诉问题,原因:executeQueryResultSet executeQuery(String sql) throws SQLException执行给定的 SQL 语句,该语句返回单个 Res...

JAVA里连接数据库为什么执行executeQuery查询的时候语句出错会不进catc...
其实是return 和finally执行先后的问题,因为你的catch里面只有一句return,如果先执行return了,就直接跳出方法了,因此,这里会先走到finally,最后执行catch里的return。你可以在catch里面return之前多加几行代码,测试一下。

executeQuery这个函数出现了问题。
你的Sno字段不是字符型,不需要加上单引号。。rs = stmt.executeQuery("select * from Student,SC where Student.Sno = " + Sno + " and SC.Sno = Student.Sno");

java程序执行到executequery()就往下不执行了
可能是打开了oracle中的sql运行工具,并且连接到scott数据库,所以不能同时查询,关闭就行了!

mysql java executeQuery 返回结果出错
有可能的你的java保存的字符集如果和数据库中的字符集不同 会出现sql语句查询结果是空。试下sql语句查询"selec t from ex_BASEINFO 把中文打印出来看下是不是乱码,如果是乱码就要修改mysql的字符集或者java的字符集就行了。

mysql java executeQuery 返回结果出错
有可能的你的java保存的字符集如果和数据库中的字符集不同 会出现sql语句查询结果是空。试下sql语句查询"selec t* from ex_BASEINFO 把中文打印出来看下是不是乱码,如果是乱码就要修改mysql的字符集或者java的字符集就行了。

JAVA语言里面Statement类的executeQuery函数如果未查询到符合条件的行...
rs.next()是检索结果集中是否有下条记录,若有返回true,若无返回false 你需要是未查询到符合条件的行,所以if的条件应是【!rs.next()】

java语句到这里异常:ResultSet rs = ps.executeQuery();
你自己注释的很明白了 \/\/executeQuery()方法会把数据库响应的查询结果存放在ResultSet 这是查询方法,是用来查询的,数据库会吧查询的结果集放在这个ResultSet里面 修改用executeUpdate这个方法

java execute,executeQuery和executeUpdate之间的区别
executeQuery 可以返回一个ResultSet对象,仅用于查询.execute 方法应该仅在语句能返回多个ResultSet对象、多个更新计数或ResultSet对象与更新计数的组合时使用。当执行某个已存储过程 或动态执行未知 SQL 字符串(即应用程序程序员在编译时未知)时,有可能出现多个结果的情况,尽管这种情况很少见。

相似回答