Java中executeQuery方法的问题

Stringtarget=gui.txt.getText();Statementdb=con.createStatement();ResultSetrs=db.execu... 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
展开
 我来答
小小妮子100
2012-08-24
知道答主
回答量:54
采纳率:0%
帮助的人:26.2万
展开全部
你要用变量作为参数的话,不能用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完全确定的情况下才能用。
碰撞时空
2012-08-24 · TA获得超过2338个赞
知道大有可为答主
回答量:3174
采纳率:75%
帮助的人:860万
展开全部
where name = 'target'
注意这对单引号。因为是字符串。
追问
可是这里的target不是变量吗?上面有一句:
String target = gui.txt.getText();

改了以后 出现了
warning: FT_OpenType_Validate is disabled. Replace FreeType2 with otvalid-enabled version.
请问这是什么警告?
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
syz2228
2012-08-24 · TA获得超过165个赞
知道小有建树答主
回答量:106
采纳率:0%
帮助的人:89万
展开全部
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”’");
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式