从数组获取列值

时间:2018-06-28 15:48:17

标签: java arrays

我正在尝试使用SQL获取商户编号的每个列值,并将其设置为从另一个类获取,尝试在下面的代码中将所有商户编号发送到单个数组中,但是我需要一个接一个地设置商户编号。 >

 public String getData(List data) {
    data = new ArrayList();
    try {
        Connection con = null;
        Class.forName("com.mysql.cj.jdbc.Driver");
        con = DriverManager.getConnection("", "", "");
        Statement st = con.createStatement();
        ResultSet rs = st.executeQuery("select merchant.T9F16_COD_CONVENZ" +
            "    , merchant.ID_ESRC" +
            "    , company.RAC_CM_RAGSOC" +
            "    , store.RAGIONE_SOCIALE" +
            "    , acquirer.DESCRIZIONE" +
            "      from KCA merchant);

            while (rs.next()) {
                String MerchantNumber = rs.getString("merchant.T9F16_COD_CONVENZ");

                data.add(MerchantNumber);
            }

    } catch (Exception e) {
        System.out.println(e);
    }
    return String.valueOf(data);
}
public String  getMerchantNumber() {
    return getData(this.MerchantNumber);
}
public void setMerchantNumber(List merchantNumber) {
    MerchantNumber = merchantNumber;
}

现在将其发送为单个数组MerchantNumber:[1,2,3,4,4]

但预期是

商家编号:1

商家编号:2

商人编号:3 ...

请分享是否有这样做的方法?

1 个答案:

答案 0 :(得分:0)

我不确定是否能完全解决问题,但是要以所需的形式将ArrayList打印到控制台,您可以首先使用String类型声明ArrayList

ArrayList<String> data = new ArrayList<String>();

然后从sql获取数据后,只需循环遍历ArrayList即可获得所需的输出:

    int i = 1;
    for(String dataStr : data) {
        System.out.println("MerchantNr."+ i + ": " + dataStr );
        i++;
    }

至于您对String.valueOf()的调用只是返回ArrayList的String表示形式。参见:https://docs.oracle.com/javase/7/docs/api/java/lang/String.html#valueOf(java.lang.Object)