我想用 sql 查询的结果加载一个组合对象。我不知道如何将 List 转换为 String[]。 我的来源如下:
public static void loadJadlospis() {
List<String[]> ans1= null;
String[] comboData=null;
MySQL.Connect();
ans1 = MySQL.sqlQuery("SELECT NazwaJadlospisu FROM Jadlospis GROUP BY NazwaJadlospisu");
MySQL.Close();
int a=0;
for( String[] row: ans1 ){
a=a+1;
System.out.print( row[0] );
comboData[a]=(row[0] + ",");
}
combo.setItems(comboData);
}
此代码无效。我收到一个错误:线程“主”java.lang.NullPointerException 中的异常 你能给我一些关于如何让它工作的建议吗?
更新 1: 下面你可以看到 MySQL.sqlQuery 源:
public static List<String[]> sqlQuery(String sql){
List<String[]> table= new ArrayList<>();
try{
state = con.createStatement();
result = state.executeQuery(sql);
int nCol = result.getMetaData().getColumnCount();
while(result.next()){
String[] row = new String[nCol];
for( int iCol = 1; iCol <= nCol; iCol++ ){
Object obj = result.getObject( iCol );
row[iCol-1] = (obj == null) ?null:obj.toString();
}
table.add( row );
}
}
catch(SQLException e){
System.err.println("Query error. " +e);
}
catch(NullPointerException e){
System.err.println("Element not found." +e);
}
return table;
}
更新 2
我使用以下代码来检查 ans1:
List<String[]> ans1= null;
MySQL.Connect();
ans1 = MySQL.sqlQuery("SELECT NazwaJadlospisu FROM Jadlospis GROUP BY NazwaJadlospisu");
for( String[] row: ans1 ){
System.out.print( row[0] );
System.out.println();
}
MySQL.Close();
它打印这个:
Successfully connected to database.
dieta 1500 kcal
dieta testowa1
test1
Database closed successfully.
最佳答案
您可以通过以下方式进行。在这里,我假设 ans1
有一个字符串类型值列表,您可以将列表转换为字符串,例如 list.toArray(new String[0])
。
public static void loadJadlospis() {
List<String[]> ans1= null;
MySQL.Connect();
ans1 = MySQL.sqlQuery("SELECT NazwaJadlospisu FROM Jadlospis GROUP BY NazwaJadlospisu");
MySQL.Close();
List<String> rowsList = new ArrayList<>()
for(String[] rows: ans1) {
for(String str: rows) {
rowsList.add(str);
}
}
String[] comboData=rowsList.toArray(new String[0]);
combo.setItems(comboData);
}
关于java - 使用 Java 中的 sql 查询结果将数据加载到组合对象中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58884680/