- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 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
您可能关注的文档
最近下载
- GB 55007-2021砌体结构通用规范.pdf VIP
- 国开电大学习网《高级财务会计》形考任务答案1-5答案.pdf VIP
- 部编版道德与法治四年级下册第四单元感受家乡文化关心家乡发展 3 大单元整体作业设计.pdf
- 石家庄市国企招聘考试真题题库2024版 .pdf VIP
- 个人岗位述职报告范文.docx VIP
- 2024石家庄市国企招聘考试真题及答案.docx VIP
- 基于FACE技术探究二氧化碳与移栽密度对汕优63颖花形成的互作效应.docx VIP
- 2025年产前筛查诊断人员资质考试历年参考题库及答案.docx VIP
- 2023年河北石家庄市市属国有企业公开招聘管理人员及专业技术人员257人笔试备考试题及答案解析.docx VIP
- 2024大学生职业生涯规划书(28篇).pdf VIP
原创力文档


文档评论(0)