java链接database SQL语句求助

MSxiao0 2013-05-16 10:06:09
这几天一直困扰的一个问题 看了很多帖子 搜了资料但是人比较笨 总是想不出怎么解决 情况是是这样子的 在java程序中 有一个String artistName
然后我用一个 String artistName = JOptionPane.showInputDialog(null,"Please Input the Name of Artist:","Artist Name",JOptionPane.INFORMATION_MESSAGE); 来获取String
之后再database里面搜索时 我是这样写的
try {
c = DriverManager.getConnection("jdbc:derby://localhost:1527/myart");
s = c.createStatement();
rs = s.executeQuery("SELECT PAINTINGS.PAINTINGID, PAINTINGS.PAINTINGNAME,PAINTINGS.ARTIST, PAINTINGS.DATEOFPAINTING, PAINTINGS.GALLERY, PAINTINGS.DESCRIPTION, LOCATION.ROOMLABEL, LOCATION.WALL
FROM PAINTINGS INNER JOIN LOCATION ON PAINTINGS.PAINTINGID=LOCATION.PAINTINGID
WHERE PAINTINGS.ARTIST=artistName);
while (rs.next()) {
displayPage.append("\n" + rs.getString(1) + "\t" + rs.getString(2) + "\t\t" + rs.getString(3) +"\t" + rs.getString(4)+ "\t\t" + rs.getString(5)+ "\t" + rs.getString(6)+"\t\t" + rs.getString(7)+ "\t" + rs.getString(8));
}
rs.close();
s.close();
c.close();
} catch (Exception e1) {
e1.printStackTrace();
}
我比较笨在table那里我只会建好两个全部写进去然后join起来。。。
结果就是 每次点击artist按钮 弹出对话框要求输入一个artist name, 输入之后却不是在表里寻找我输入的内容 而是在表里搜索artistName这个String 我知道会这样的原因但就是想不到如何解决

求各位大神帮忙!!!
...全文
70 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
MSxiao0 2013-05-17
  • 打赏
  • 举报
回复
引用 1 楼 zlp321002 的回复:
{} 变量参数化。 rs结果集是多少? 没看到有检索的功能,displayPage append做什么?
就是这是一个java GUI的程序 我前面用弹框要求用户输入了一个String artistName, 然后后面我想拿这个用户输入的artistName进表ARTIST里面 找到匹配的就显示出来displayPage是textarea baidu看到的 比如我要查询的是在 user 表中找 name=‘王梅’的数据。SQL语句是:SELECT * FROM user WHERE name='王梅' ,这条语句在pgAdmin中能够查询出。但是写在JAVA里查不出。 我就是上面这个王梅对我来数是未知的 运行程序之后才知道用户输入的什么 所以我不能用WHERE name='artistName' 不然只是在表里找artistName而不是后来输入的String了
zlp321002 2013-05-17
  • 打赏
  • 举报
回复
{} 变量参数化。 rs结果集是多少? 没看到有检索的功能,displayPage append做什么?
MSxiao0 2013-05-17
  • 打赏
  • 举报
回复
引用 3 楼 zlp321002 的回复:
try rs = s.executeQuery("SELECT PAINTINGS.PAINTINGID, PAINTINGS.PAINTINGNAME,PAINTINGS.ARTIST, PAINTINGS.DATEOFPAINTING, PAINTINGS.GALLERY, PAINTINGS.DESCRIPTION, LOCATION.ROOMLABEL, LOCATION.WALL FROM PAINTINGS INNER JOIN LOCATION ON PAINTINGS.PAINTINGID=LOCATION.PAINTINGID WHERE PAINTINGS.ARTIST='"+artistName+"'");
感谢大神指导!!~~
zlp321002 2013-05-17
  • 打赏
  • 举报
回复
try rs = s.executeQuery("SELECT PAINTINGS.PAINTINGID, PAINTINGS.PAINTINGNAME,PAINTINGS.ARTIST, PAINTINGS.DATEOFPAINTING, PAINTINGS.GALLERY, PAINTINGS.DESCRIPTION, LOCATION.ROOMLABEL, LOCATION.WALL FROM PAINTINGS INNER JOIN LOCATION ON PAINTINGS.PAINTINGID=LOCATION.PAINTINGID WHERE PAINTINGS.ARTIST='"+artistName+"'");

34,590

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧