gpt4 book ai didi

java - ResultSet 到数据库 SQL 查询的不同值的比较

转载 作者:太空宇宙 更新时间:2023-11-04 14:16:34 25 4
gpt4 key购买 nike

我是 java 新手。我有一个 SQL 查询,它提供以下输出

logtime 2014-09-02 16:05:10.0

BL1_data_SS_ST 2

BL2_data_SS_ST 2

BL3_data_SS_ST 2

BL4_data_SS_ST 1

BL5_data_SS_ST 0

BL6_data_SS_ST 2

/* continues till BL27_data_SS_ST */

st1_prmt_status_p45 1

beam_current 110.58

beam_energy 2500.0635

我的输出中只有一行和 31 列。我正在使用 Java 和 JSP 。

<小时/>

编辑

上面的结果是通过下面的方法获取的

public String[][] beamline_Status() {
int i = 0;
try {
con = getConnection();
stmt = con.createStatement();

String sql = "SELECT TOP 1 c.logtime, a.BL1_data_SS_ST,a.BL2_data_SS_ST,a.BL3_data_SS_ST,a.BL4_data_SS_ST,a.BL5_data_SS_ST,a.BL6_data_SS_ST,a.BL7_data_SS_ST,a.BL8_data_SS_ST,a.BL9_data_SS_ST,a.BL10_data_SS_ST,a.BL11_data_SS_ST, a.BL12_data_SS_ST,a.BL13_data_SS_ST,a.BL14_data_SS_ST,a.BL15_data_SS_ST,a.BL16_data_SS_ST,a.BL17_data_SS_ST,a.BL18_data_SS_ST,a.BL19_data_SS_ST,a.BL20_data_SS_ST,a.BL21_data_SS_ST,a.BL22_data_SS_ST,a.BL23_data_SS_ST,a.BL24_data_SS_ST,a.BL25_data_SS_ST,a.BL26_data_SS_ST,a.BL27_data_SS_ST,b.st1_prmt_status_p45,c.beam_current,c.beam_energy from INDUS2_BLFE.dbo.main_BLFE_status a inner join INDUS2_MSIS.dbo.main_MSIS_status b on a.logtime=b.logtime inner join INDUS2_BDS.dbo.DCCT c on b.logtime=c.logtime ORDER BY c.logtime DESC ";

stmt.executeQuery(sql);
rs = stmt.getResultSet();

while (rs.next()) {
for (int j = 0; j < 31; j++) {
a[i][j] = rs.getString(j + 1);
}
}
} catch (Exception e) {
System.out.println("\nException (String code):" + e);
} finally {
closeConnection(stmt, rs, con);
}
return a;
}

现在我想定义一个从 ResultSet 检索值的方法,其中列值为 01。如何做到这一点。

编辑2

我尝试通过以下代码从结果集中检索列值为 1 的列值:-

public String[][] beam_CurrentStatus() {
int i = 0;
try

{
con = getConnection();
stmt = con.createStatement();

String sql = "SELECT TOP 1 c.logtime, a.BL1_data_SS_ST,a.BL2_data_SS_ST,a.BL3_data_SS_ST,a.BL4_data_SS_ST,a.BL5_data_SS_ST,a.BL6_data_SS_ST,a.BL7_data_SS_ST,a.BL8_data_SS_ST,a.BL9_data_SS_ST,a.BL10_data_SS_ST,a.BL11_data_SS_ST, a.BL12_data_SS_ST,a.BL13_data_SS_ST,a.BL14_data_SS_ST,a.BL15_data_SS_ST,a.BL16_data_SS_ST,a.BL17_data_SS_ST,a.BL18_data_SS_ST,a.BL19_data_SS_ST,a.BL20_data_SS_ST,a.BL21_data_SS_ST,a.BL22_data_SS_ST,a.BL23_data_SS_ST,a.BL24_data_SS_ST,a.BL25_data_SS_ST,a.BL26_data_SS_ST,a.BL27_data_SS_ST,b.st1_prmt_status_p45,c.beam_current,c.beam_energy from INDUS2_BLFE.dbo.main_BLFE_status a inner join INDUS2_MSIS.dbo.main_MSIS_status b on a.logtime=b.logtime inner join INDUS2_BDS.dbo.DCCT c on b.logtime=c.logtime ORDER BY c.logtime DESC ";

stmt.executeQuery(sql);
rs = stmt.getResultSet();

while (rs.next()) {
for (int j = 1; j < 31; j++) {
if ((rs.getString(j)) == "1")

a[i][j] = rs.getString(j + 1);

}


}
} catch (Exception e) {
System.out.println("\nException in:" + e);
} finally {
closeConnection(stmt, rs, con);
}

return a;


}

但是我从上面的代码得到的结果是

[[Ljava.lang.String;@ea25c1

最佳答案

如果您希望 ResultSet 中包含整个表,然后仅获取其中的第一列和第二列,您可以这样做:

 Statement stmt=conn.createStatement();
ResultSet rs= stmt.executeQuery("select * from tableName");
rs.getInt(1); //assuming your column is of compatible type
rs.getInt(2);

或者另一种方法是仅将数据库中的前两列检索到 ResultSet

关于java - ResultSet 到数据库 SQL 查询的不同值的比较,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27653553/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com