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

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

ID:40831142

大小:111.50 KB

页数:5页

时间:2019-08-08

将参数传递给 SELECT 语句的 IN 子句_第1页
将参数传递给 SELECT 语句的 IN 子句_第2页
将参数传递给 SELECT 语句的 IN 子句_第3页
将参数传递给 SELECT 语句的 IN 子句_第4页
将参数传递给 SELECT 语句的 IN 子句_第5页
资源描述:

《将参数传递给 SELECT 语句的 IN 子句》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、将参数传递给SELECT语句的IN子句作者:SanjayDhamankar,2005年12月 通过使用SunJavaStudioCreator2IDE中的查询编辑器,您可以轻松地创建大量复杂的查询,其中包括那些带有参数化IN子句的查询。在某些情况下,您可能需要执行包含IN子句(带有参数或参数列表)的查询SQLSELECT语句。也就是说,您希望查询能够接受IN子句可利用的一个或一组参数。 例如,您可能需要构造一个从表中选取某些列的SQLSELECT语句,它使用WHERE子句将选择范围限定在与值列表中的特定列值(作为参数

2、传递给查询)相匹配的列。如果要为样例TRAVEL数据库中的TRIP表构造此类查询,您可以使用以下SELECT语句,返回其标识符与1、4或5相匹配的个人的旅行情况:SELECTALLTRAVEL.TRIP.TRIPID,TRAVEL.TRIP.PERSONID,TRAVEL.TRIP.DEPDATE,TRAVEL.TRIP.DEPCITY,TRAVEL.TRIP.DESTCITY,TRAVEL.TRIP.TRIPTYPEIDFROMTRAVEL.TRIPWHERETRAVEL.TRIP.PERSONIDIN(1,4,5

3、)但是,您需要将这些值(1、4和5)作为参数进行传递,而不是对它们进行硬编码。您可以使用JavaStudioCreator2查询编辑器来构造一些SELECT语句,它们将参数作为IN子句的一部分进行处理。本技术提示说明了如何完成此类操作,您甚至可以事先不了解查询所需的参数数量。我们可以从比较简单的示例入手。如果您在设计查询时已知晓参数的数量,则在设置IN子句时,其参数数量应当是执行查询时所需的参数数量。SELECT语句中的每个参数都使用问号(?)占位符来表示。例如,可以按以下方式更改上面的SELECT语句,使之可以接受

4、IN子句的参数。SELECTALLTRAVEL.TRIP.TRIPID,TRAVEL.TRIP.PERSONID,TRAVEL.TRIP.DEPDATE,TRAVEL.TRIP.DEPCITY,TRAVEL.TRIP.DESTCITY,TRAVEL.TRIP.TRIPTYPEIDFROMTRAVEL.TRIPWHERETRAVEL.TRIP.PERSONIDIN(?,?,?)请注意,IN子句在圆括号内包含了三个参数占位符(?),这表示在执行时需要为此特定查询传递三个参数。使用JavaStudioCreator2查询编

5、辑器,您可以方便地将这些类型的查询结合在一起。请右键单击查询编辑器网格窗格中的列以打开“添加查询条件”对话框。将“比较”字段设置为下拉选项列表中的IN,然后选择“参数”单选按钮,将条件设置为(?,?,?)。在完成该对话框后,网格窗格中的“条件”列将反映您所做的更改(请参见图1)。图1:设置IN子句的参数 您甚至可以通过查询编辑器测试此查询。从图表窗格或SQL窗格弹出式菜单中选择“运行查询”。因为查询现在包含一些参数,所以系统将打开“指定参数值”对话框,您可以在其中输入参数值。在上面的示例中,对话框会提示您输入三个值。

6、您可以在查询编辑器的底部窗格中查看查询结果。图2显示了将PERSONID设置为1、4和5来运行此参数化SQLSELECT语句时,查询编辑器中显示出的该语句及运行结果。图2:带有参数化IN子句的查询 截至目前,您已指定并设置了查询。现在,我们需要在应用程序中添加代码,这样在调用查询时,应用程序会将参数值传递给SELECT语句。为此,应用程序需要在查询行集上调用setObject方法。setObject方法将在运行时设置这些参数值。请参阅相关的行集文档和API。如果在设计查询时并不知道所需的参数数量,则必须在运行时创建包

7、含"?"占位符的查询,这些占位符的数量取决于所需的参数数量。动态创建查询后,请使用上述setObject方法来动态设置每个参数值。在应用程序中实现此操作时,您会发现以下代码示例非常有用。请记住,您只能将此代码作为一种指导,因为它尚未经过测试,甚至也未进行编译。代码示例1StringBuffercriteria=newStringBuffer();for(inti=0;i

8、DIN(?,");}elseif(i==(numberOfParameters-1)){criteria.append("?)");}elsecriteria.append("?,");}StringdesignTimeQuery=newString("SELECTALLTRAVEL.TRIP.TRIPID,"+"TRAVEL.TRIP.PER

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。