`
465272694
  • 浏览: 52291 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

技巧:动态创建SQL语句

    博客分类:
  • sql
阅读更多

MATT在他的博客中发表了一篇介绍动态创建SQL语句的博文

在文中,他讲到了自己在使用IN操作符进行数据库查询的时候遇到的问题:根据外部传入的集合个数决定IN操作符中占位符“?”的个数。

MATT给出了他的解决办法:

    import java.sql.Connection
    import java.sql.DriverManager
    import java.sql.SQLException

    def list = getResult()
    Connection connection = DriverManager.getConnection(
               "jdbc:Oracle:thin:username/password@xyz:1521:abc")
    Sql sql = new Sql(connection)
    def query = 
        "select * from foo where id in (${'?, '*(list.size()-1)}?)"
    sql.query query, list, {ResultSet rs ->
        println rs.getLong("id"); // and other stuff from foo
    }
    sql.close()
 

关键在这句:

    ${'?, ' * (list.size()-1)}?

“${..}”里面是将“?, ”重复list.size()-1次,再加上后面一个“?”,刚好凑够了list.size()个“?”。

还有网友提出了其它的解决方法

    (['?'] * list.size()).join(', ')
分享到:
评论

相关推荐

    易语言动态拼接sql语句

    在编程领域,动态拼接SQL语句是一种常见的技术,它允许程序在运行时根据需要构建SQL查询。在易语言这个中国本土化的编程环境中,动态拼接SQL同样具有重要的应用价值。易语言以其独特的汉字编程风格,降低了编程的...

    sql语句、动态SQL语句基本语法

    SQL(Structured Query Language)是用于管理和操作...综上所述,掌握SQL语句和动态SQL的基本语法对于任何IT从业者来说都至关重要,无论是数据库管理员还是开发者,都需要熟练运用这些技能来高效地操作和管理数据库。

    ABAP SQL 语句 动态 操作

    在ABAP编程中,SQL语句的动态操作是高级编程技术的一个重要方面,它允许根据程序运行时的条件和用户输入来构建和执行SQL查询。本程序“ZSQL_EXEC_RICOO”展示了如何使用ABAP实现动态SQL操作,包括SELECT、UPDATE、...

    Java 使用注解拼接SQL语句

    "Java使用注解拼接SQL语句"是一个常见的实践,它使得动态构建SQL查询变得更为简洁和可维护。这种技术通常与ORM(对象关系映射)框架如MyBatis或Hibernate结合使用,但也可以通过自定义处理逻辑实现。 1. **自定义...

    模拟SQL Builder创建SQL语句的关键技术.docx

    【SQL Builder创建SQL语句的关键技术】 SQL Builder是Borland C++ Builder 6.0中的一个工具,它集成在TQuery控件中,能够帮助开发者自动生成复杂的SQL查询语句,无需手动编写大量SQL代码。这个工具尤其适用于对SQL...

    学习SQL应知道的动态SQL语句基本语法 mssql

    动态SQL允许我们在运行时构建SQL语句,而不是在编译时。这意味着我们可以根据程序运行时的条件生成不同的SQL命令。这对于处理不确定的查询结构或执行基于变量的复杂查询尤其有用。 **2. 动态SQL的应用场景** - **...

    基于ADO技术动态创建SQL Server数据库.pdf

    从提供的文件内容来看,本文主要介绍了一种利用ADO(ActiveX Data Objects)技术在Visual C++(VC++)中动态创建SQL Server数据库的方法。本文详细描述了ADO技术的核心对象及其在创建数据库过程中的应用,并给出了...

    Microsoft SQL Server 2008技术内幕:T-SQL语言基础—源代码

    11. **动态SQL**:动态SQL允许在运行时构造和执行SQL语句,常用于复杂或不确定的查询需求。书中会探讨其优点和潜在的安全风险。 12. **安全性与权限管理**:SQL Server提供了丰富的权限系统,控制用户对数据库的...

    PowerBuilder下动态SQL语句的实现.pdf

    以上知识点涉及了PowerBuilder环境下动态SQL语句的概念、实现方法以及在编程过程中的应用和注意事项,为数据库开发者提供了在使用PowerBuilder进行数据库编程时,实现动态SQL语句的技术指导和参考。

    动态封装SQL语句,配置文件的调用与封装

    在IT行业中,数据库操作是应用开发中的重要环节,而动态封装SQL语句和配置文件的调用与封装是提升程序灵活性、可维护性的重要技术手段。下面将详细讲解这两个概念及其应用。 首先,动态封装SQL语句指的是在运行时...

    模拟SQL Builder创建SQL语句的关键技术.pdf

    文章主要介绍了模拟SQL Builder创建SQL语句的关键技术,这些技术包括动态创建控件、异常处理技术以及泛型设计。下面详细阐述这些技术的原理及其实现方法。 首先,文章指出SQL(Structured Query Language)是一种...

    学习SQL应知道的动态SQL语句基本语法

    在SQL的世界里,动态SQL(Dynamic SQL)是一种强大的工具,尤其对于处理复杂查询或需要根据运行时条件构建SQL语句的场景。对于SQL初学者来说,掌握动态SQL的基本语法是提高编程灵活性的关键步骤。让我们深入了解一下...

    SQLServer2008技术内幕:T-SQL查询

    《SQLServer2008技术内幕:T-SQL查询》这本书深入探讨了SQL Server 2008中的Transact-SQL(T-SQL)查询语言,这是SQL Server数据库管理系统的核心部分,用于数据检索、更新、插入和删除。T-SQL不仅包含标准的SQL语法...

    基于ADO技术动态创建SQLServer数据库

    ### 基于ADO技术动态创建SQLServer数据库 #### 引言 在现代软件开发中,尤其是涉及到数据处理的应用程序,经常会遇到需要处理临时性数据的情况。这些数据可能源自某个计算过程的中间结果,也可能涉及与其他系统...

    自动生成SQL语句_C#_sql_

    总结,自动生成SQL语句在C#开发中是一项实用的技术,可以帮助我们简化数据库操作,提高代码的可读性和维护性。无论是使用ORM框架如Entity Framework,轻量级库如Dapper,还是手工构造或利用辅助库,都有其适用的场景...

    精妙的SQL语句

    - SQL语句:`SELECT * FROM student_info WHERE NOT EXISTS (SELECT * FROM student WHERE student_info.id = student.id) AND 系名称 = ‘’" & strDepartmentName & "’’ AND 专业名称 = ‘’" & ...

    sql语句转string

    1. **创建SQL语句**:在数据库客户端,例如MySQL Workbench、Oracle SQL Developer或者SQL Server Management Studio中,我们可以编写和测试SQL语句,确保其正确性和效率。 2. **转成String**:将验证过的SQL语句...

    Microsoft SQL Server 2005技术内幕:T-SQL查询

    通过阅读《Microsoft SQL Server 2005技术内幕:T-SQL查询》,读者可以全面掌握SQL Server 2005中的T-SQL查询技巧,无论你是初学者还是经验丰富的DBA,都能从中受益匪浅。这本书将帮助你编写更高效、更精确的查询,...

Global site tag (gtag.js) - Google Analytics