栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

不能在JDBC PreparedStatement中使用LIKE查询?

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

不能在JDBC PreparedStatement中使用LIKE查询?

首先,

PreparedStatement
占位符(那些占位符
?
)仅用于 列值
,而不用于表名,列名,SQL函数/子句等。最好
String#format()
改用。其次,你应该
引用占位符一样
'?'
,它只会malform最终的查询。的
PreparedStatement
制定者已经做了引用(和转义)的工作适合你。

这是固定的SQL:

private static final String SQL = "select instance_id, %s from eam_measurement"    + " where resource_id in (select RESOURCE_ID from eam_res_grp_res_map where"    + " resource_group_id = ?) and DSN like ? order by 2");

使用方法如下:

String sql = String.format(SQL, "SUBSTr(DSN,27,16)"); // This replaces the %s.preparedStatement = connection.prepareStatement(sql);preparedStatement.setInt(1, defaultWasGroup);preparedStatement.setString(2, "%Module=jvmRuntimeModule:freeMemory%");

另请参阅

  • Sun JDBC教程:使用准备好的语句
  • 格式字符串语法


转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/437602.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号