簡體   English   中英

Java中的sql server腳本文件中傳遞參數

[英]passing parameter in sql server script file in java

我的電腦中有sql文件:

示例: C:\\Users\\User\\Desktop\\Queries\\test.sql

test.sql示例中查詢:

Select * from table where colname like '%me%';

我在這樣的Java程序中運行此命令:

FileReader SomeName = new FileReader("C:\Users\User\Desktop\Queries\test.sql");
ResultSet rsjs = null;
rsjs = jsscript.runScript(myconn, SomeName);

這工作正常,但現在我需要一種在此sql文件中傳遞參數的方法,以便查詢如下:

Select * from table where colname like @parameter;

可能嗎?

PS:我不能在Java程序中直接使用查詢。 我知道如何在查詢中傳遞參數,但是這個問題與sql文件中的傳遞參數有關。 存儲過程也不可行。

您應該查看StrSubstitutor https://commons.apache.org/proper/commons-lang/javadocs/api-2.6/org/apache/commons/lang/text/StrSubstitutor.html

sql字符串可以具有以下變量:

String query = "Select * from table where colname like ${parameter};"

然后創建一個像這樣的地圖:

Map<String, String> values = new HashMap<>();
values.put("parameter", "%me%");

現在,您可以使用以下命令替換變量:

StrSubstitutor sub = new StrSubstitutor(values);
return sub.replace(query);

編輯1:如果查詢來自文件,則可以讀取文件並將其存儲在字符串中。 查看Files.readAllLines(path, charset)

暫無
暫無

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

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