【发布时间】:2019-02-27 12:20:03
【问题描述】:
我有getSites() 的一种方法,它返回 csv 文件中的所有站点名称。现在我想在 SQL 查询中使用返回的字符串变量。这是getSites() 方法:
public class ReadCSVFile {
public static String getSites() {
// .csv comma separated values
String csvFile = "C:\\data.csv";
BufferedReader br = null;
String line = "";
String sites = "";
try {
br = new BufferedReader(new FileReader(csvFile));
while ((line = br.readLine()) != null) {
sites = sites + line + ",";
}
sites = sites.substring(0, sites.length() - 1);
// System.out.println(sites);
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
} finally {
if (br != null) {
try {
br.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
return sites;
}
}
这是我想在这个 SQL 查询中使用的值:
String query = select NodeID, Site_Name from csproperties where Site_Name IN ("+sites+") ORDER BY Site_Name
所以,当我在("+sites+") 中传递字符串的值时,查询变量将被触发,并基于 site_names 我将获得 API 输出。
现在我在 com.gds.service 包下创建了一个 GFNSService 的类文件,我在其中创建了一个 API 的方法 getRigStatistics 并且在此方法下我想要一个代码来获取此 ("+sites+") 下的站点值sql查询如下-
@GET
@Produces({ MediaType.APPLICATION_JSON, MediaType.APPLICATION_XML }) @Path("/getRigStatistics") 公共列表 getRigStatistics(@HeaderParam("authorization") String authString) { logger.info("API 方法 getRigStatistics 调用。");
if (!isAppDynamicsUserAuthenticatedRigStatistics(authString)) {
throw new WebApplicationException(Response.status(Response.Status.UNAUTHORIZED).build();
}
List rigList = new ArrayList();
String query = "String query = select NodeID, Site_Name from csproperties where Site_Name IN ("+sites+") ORDER BY Site_Name";.....and so on code to map properties.....
所以,基本上我想要一个代码,在其中我应该在 getRigStatistics 方法中创建一个方法,以将站点值放入(“+sites+”)。
【问题讨论】:
-
sql 不是 Java。您是在为 java 部分苦苦挣扎,还是在为 sql 苦苦挣扎?
-
虽然我在 java 部分苦苦挣扎,但我想创建一个将值放入该块(“+sites+”)的方法
-
你现在得到了什么?
-
不,我没有得到任何值,但我想知道如何编写一个方法来从站点获取值并返回该方法的值应该进入 ("+sites "+)。
-
正确的查询是这样的 - String query = select NodeID, Site_Name from csproperties where Site_Name IN ("+sites+") ORDER BY Site_Name
标签: java