我正在尝试使用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 ...
请分享是否有这样做的方法?
答案 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)