使用 sql 查询结果将数据加载到 Java 中的组合对象

loading data into combo object with sql query result in Java

我想加载一个带有 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);  
}

此代码无效。我收到一个错误:线程异常 "main" 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);  
}