簡體   English   中英

如何在SQL查詢中插入變量

[英]how to insert variable into SQL query

我有測試腳本,productId 存儲在文本文件中,我可以使用 read 方法來檢索它。

import static org.assertj.core.api.Assertions.*
import groovy.json.JsonOutput as JsonOutput
import groovy.json.JsonSlurper as JsonSlurper
import internal.GlobalVariable as GlobalVariable
import internal.GlobalVariable
import com.kms.katalon.core.configuration.RunConfiguration
import java.sql.*
import java.io.File

//Read productId
def productId = new File(RunConfiguration.getProjectDir() + "/Data Files/productId.txt")

//SQL statement
String dbQuery2 = /SELECT * FROM db.table1 where productId= @productId order by lastmodificationdateutc desc/

我如何使用 @ 作為變量並將其替換為“productId.text”?

我試過下面的代碼,但它不起作用請糾正我是否可以使用這種方法?

    String dbQuery2 = "SELECT * FROM db.table1 where productId = ?"
    def productId = new File(RunConfiguration.getProjectDir() + "/Data Files/productId.txt")
    PreparedStatement stmt = con.prepareStatement(dbQuery2)
    stmt.setString(1, productId.text)
    ResultSet resultSet = preparedStatement.executeQuery()

ResultSet resultSet = stmt.executeQuery()

//Connect to PostgresSQL, global variable is stored at profile
List resultSet = CustomKeywords.'test.database.getPostgresSQLResults'(GlobalVariable.dbConnString2 , GlobalVariable.dbUsername2 , GlobalVariable.dbPassword2 ,GlobalVariable.dbDriver2 ,dbQuery2 )

以下是無需准備語句即可工作的代碼

腳本中的連接字符串

//to connect PostgresSQL server
    @Keyword
    def List getPostgresSQLResults (String dbConnString2 , String dbUsername2 , String dbPassword2 , String dbDriver2 , String dbQuery2){

        Sql sql = Sql.newInstance(dbConnString2,dbUsername2,dbPassword2,dbDriver2)

        List results = sql.rows(dbQuery2)

        return results

        sql.close()
    }

我設法使用這種語法充當變量

def productId = new File(RunConfiguration.getProjectDir() + "/Data Files/productId.txt")
dbQuery2 = /SELECT * FROM db.table1 where productId = '$productId.text}'/

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM