将参数传递给 SELECT 语句的 IN 子句.docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
将参数传递给 SELECT 语句的 IN 子句

将参数传递给 SELECT 语句的 IN 子句 作者:Sanjay Dhamankar,2005 年 12 月 ? 通过使用 Sun Java Studio Creator 2 IDE 中的查询编辑器,您可以轻松地创建大量复杂的查询,其中包括那些带有参数化 IN 子句的查询。在某些情况下,您可能需要执行包含 IN 子句(带有参数或参数列表)的查询 SQL SELECT 语句。也就是说,您希望查询能够接受 IN 子句可利用的一个或一组参数。 ? 例如,您可能需要构造一个从表中选取某些列的 SQL SELECT 语句,它使用 WHERE 子句将选择范围限定在与值列表中的特定列值(作为参数传递给查询)相匹配的列。如果要为样例 TRAVEL 数据库中的 TRIP 表构造此类查询,您可以使用以下 SELECT 语句,返回其标识符与 1、4 或 5 相匹配的个人的旅行情况: SELECT ALL TRAVEL.TRIP.TRIPID, TRAVEL.TRIP.PERSONID, TRAVEL.TRIP.DEPDATE, TRAVEL.TRIP.DEPCITY, TRAVEL.TRIP.DESTCITY, TRAVEL.TRIP.TRIPTYPEID FROM TRAVEL.TRIP WHERE TRAVEL.TRIP.PERSONID IN ( 1,4,5 ) 但是,您需要将这些值(1、4 和 5)作为参数进行传递,而不是对它们进行硬编码。 您可以使用 Java Studio Creator 2 查询编辑器来构造一些 SELECT 语句,它们将参数作为 IN 子句的一部分进行处理。本技术提示说明了如何完成此类操作,您甚至可以事先不了解查询所需的参数数量。 我们可以从比较简单的示例入手。如果您在设计查询时已知晓参数的数量,则在设置 IN 子句时,其参数数量应当是执行查询时所需的参数数量。SELECT 语句中的每个参数都使用问号 (?) 占位符来表示。例如,可以按以下方式更改上面的 SELECT 语句,使之可以接受 IN 子句的参数。 SELECT ALL TRAVEL.TRIP.TRIPID, TRAVEL.TRIP.PERSONID, TRAVEL.TRIP.DEPDATE, TRAVEL.TRIP.DEPCITY, TRAVEL.TRIP.DESTCITY, TRAVEL.TRIP.TRIPTYPEID FROM TRAVEL.TRIP WHERE TRAVEL.TRIP.PERSONID IN ( ?, ?, ?) 请注意,IN 子句在圆括号内包含了三个参数占位符 (?),这表示在执行时需要为此特定查询传递三个参数。 使用 Java Studio Creator 2 查询编辑器,您可以方便地将这些类型的查询结合在一起。请右键单击查询编辑器网格窗格中的列以打开“添加查询条件”对话框。将“比较”字段设置为下拉选项列表中的 IN,然后选择“参数”单选按钮,将条件设置为 ( ?, ?, ? )。在完成该对话框后,网格窗格中的“条件”列将反映您所做的更改(请参见图 1)。 图 1:设置 IN 子句的参数 ? 您甚至可以通过查询编辑器测试此查询。从图表窗格或 SQL 窗格弹出式菜单中选择“运行查询”。因为查询现在包含一些参数,所以系统将打开“指定参数值”对话框,您可以在其中输入参数值。在上面的示例中,对话框会提示您输入三个值。您可以在查询编辑器的底部窗格中查看查询结果。图 2 显示了将 PERSONID 设置为 1、4 和 5 来运行此参数化 SQL SELECT 语句时,查询编辑器中显示出的该语句及运行结果。 图 2:带有参数化 IN 子句的查询 ? 截至目前,您已指定并设置了查询。现在,我们需要在应用程序中添加代码,这样在调用查询时,应用程序会将参数值传递给 SELECT 语句。为此,应用程序需要在查询行集上调用 setObject 方法。setObject 方法将在运行时设置这些参数值。请参阅相关的行集文档和 API。 如果在设计查询时并不知道所需的参数数量,则必须在运行时创建包含 ? 占位符的查询,这些占位符的数量取决于所需的参数数量。动态创建查询后,请使用上述 setObject 方法来动态设置每个参数值。 在应用程序中实现此操作时,您会发现以下代码示例非常有用。请记住,您只能将此代码作为一种指导,因为它尚未经过测试,甚至也未进行编译。 代码示例 1 StringBuffer criteria = new StringBuffer(); for (int i=0; i numberOfParameters; i++) { if (i == 0 ) { criteria.append ( WH

文档评论(0)

jgx3536 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

版权声明书
用户编号:6111134150000003

1亿VIP精品文档

相关文档