2

我需要搜索包含用户信息表的数据库。我知道通过使用如下查询搜索来获得结果

String query;
StringBuilder sb=new StringBuilder(1024);
sb.append("select * from userinfo where uname=").append(key);
query=sb.toString();

但我需要做的是。

  • 如果钥匙是abc
  • 然后我需要在数据库中搜索所有具有值的数据abc
  • 例如
  • 我的数据库包含数据abc, aba, gjabc, abcxyz,hjjabcxyz
  • 然后我需要检索值abc, gjabc, abcxyz,hjjabcxyz
  • 因为上述所有值都包含abc共同点。

我怎样才能做到这一点?

4

2 回答 2

7

如果你使用的是纯 SQL,你应该使用用“%”包围的 like。然后,您的查询将返回 uname 包含“abc”的所有行。您的查询需要如下所示:

select * from userinfo where uname like '%key%'
于 2013-03-01T13:37:37.527 回答
2

正确的实现将使用 PreparedStatement。

PreparedStatement ps = conn.prepareStatement("select * from userinfo where uname like ?");
ps.setString(1, key);
ResultSet rs = ps.executeQuery();

当然这会错过所有错误检查和管道代码:)

于 2013-03-01T13:46:02.057 回答