Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/58.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java JDBC告知无法找到列_Java_Mysql_Jdbc - Fatal编程技术网

Java JDBC告知无法找到列

Java JDBC告知无法找到列,java,mysql,jdbc,Java,Mysql,Jdbc,我想在一个单独的主测试文件中测试我的一些JPA算法 我打算做的是: 我将一条SQL语句从JAVA发送到MySQL5.1服务器,并希望结果返回到ArrayList中。作为错误信息,未找到列zip java.sql.SQLException: Column 'zip' not found. at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:1055) at com.mysql.jdbc.SQLError.creat

我想在一个单独的主测试文件中测试我的一些JPA算法

我打算做的是: 我将一条SQL语句从JAVA发送到MySQL5.1服务器,并希望结果返回到ArrayList中。作为错误信息,未找到列zip

java.sql.SQLException: Column 'zip' not found.
    at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:1055)
    at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:956)
    at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:926)
    at com.mysql.jdbc.ResultSetImpl.findColumn(ResultSetImpl.java:1093)
    at com.mysql.jdbc.ResultSetImpl.getString(ResultSetImpl.java:5488)
    at de.telekom.umkreissuche.SQLConnect.exportSQLResult(SQLConnect.java:82)
    at de.telekom.umkreissuche.SQLConnect.sendSQLStatement(SQLConnect.java:66)
    at de.telekom.umkreissuche.Testing.main(Testing.java:48)
Exception in thread "main" java.lang.NullPointerException
    at de.telekom.umkreissuche.Testing.main(Testing.java:59)
,但在我的SQL语句中,我没有选择类似zip的东西

SQL文件:

SELECT 
    d.`Web-Adresse` "Link zur Ausschreibung im Intranet"
,   d.`Ausschreibungsnr.`
,   d.`Stellenbezeichnung`
,   d.`Ausschreibende Einheit`
,   d.`Standort`
,   d.`PLZ RASt` "*PLZ"
,   DATE_FORMAT(d.`Ausschreibungsende`, "%d.%m.%Y") "Ausschreibungsende"
,   d.`Zuordnung Besoldungsgruppen` "*Besoldungsgruppe"
,   d.`Bewertung lt. Ausschreibung` "*Vergütungsgruppe"
FROM wicirclesearch.`zc_data` d
WHERE `PLZ RASt` in (:plz)
-- WHERE `PLZ RASt` in ('64289')
;
我在Java Main中所做的工作:

xml = new XMLConfigProperties("C:\\Users\\A22548675\\workspace\\umkreissuche-war\\WebContent\\data\\config\\dbMySQL.xml");
activeFilepath = new File("C:\\Users\\A22548675\\workspace\\umkreissuche-war\\WebContent\\data\\config\\mysql_plz.sql");

Map<String, String> token = new HashMap<String, String>();
token.put(":plz", "'64289'");

try {
    // create a temporary SQL file
    setTmpFileForReplacer(activeFilepath.getAbsolutePath());
    // set search tokens into SQL file
    fileTokenReplacer(activeFilepath.getAbsolutePath(), token);

    // start sql connect with XML config params
    con = new SQLConnect(xml.getProperty("jdbc.url"), xml.getProperty("jdbc.user"), xml.getProperty("jdbc.password"), xml.getProperty("jdbc.driver"));
    // use and send modified SQL file as SQL query
    testResultSQL = con.sendSQLStatement(activeFilepath.getAbsolutePath());
    System.out.println(testResultSQL.toString());
    // close SQL connection
    con.getConnection().close();
} catch (Exception e) {e.printStackTrace();}
finally{
    // recover SQL file from temporary one (temporary file delete)
    resetFileFromTmpFile(activeFilepath.getAbsolutePath());
}

// if SQL query result empty: aboard the routine and give message to webspace
if(testResultSQL.isEmpty() || testResultSQL == null){
    System.out.println("Result is leer");
}
else{
    int i = 0;
    for(ArrayList<String> liste: testResultSQL){
        System.out.print("Row "+i+": [");
        for(String e: liste){
            System.out.print(e+", ");
        }
        System.out.println("]");
        i++;
    }
}
我的问题是: 为什么在不存在选定列的情况下获取这些错误代码? 它可能是一只虫子吗?或者我有语法错误

我的错是什么? 它真的是我的。我没有实现我的导出SQL结果函数,我没有修改它

以下是函数:

/**
 * Export the SQL results
 * @param resultSet {@link java.sql.ResultSet}
 * @return {@link ArrayList<ArrayList>} with {@link java.lang.String}
 * @throws SQLException
 */
private ArrayList<ArrayList<String>> exportSQLResult(ResultSet resultSet) throws SQLException{
    ArrayList<ArrayList<String>> results = new ArrayList<ArrayList<String>>();
    ArrayList<String> tmpLine;
    resultSet.beforeFirst();

    while(resultSet.next()){
        tmpLine = new ArrayList<String>();
        tmpLine.add(resultSet.getString("zip"));
        tmpLine.add(resultSet.getString("distance"));
        results.add(tmpLine);
    }
    return results;
}
我如何解决我的问题: 我想改变我的方法。我不再直接选择,只想使用迭代


谢谢你的帮助和拯救我的一天。

问题解决了,是的

这是我的错,我更改了问题函数:请参阅请求

/**
 * Export the SQL results
 * @param resultSet {@link java.sql.ResultSet}
 * @return {@link ArrayList<ArrayList>} with {@link java.lang.String}
 * @throws SQLException
 */
private ArrayList<ArrayList<String>> exportSQLResult(ResultSet resultSet) throws SQLException{
    ArrayList<ArrayList<String>> results = new ArrayList<ArrayList<String>>();
    ArrayList<String> tmpLine;
    resultSet.beforeFirst();
    ResultSetMetaData md = resultSet.getMetaData();
    int cols = md.getColumnCount();

    tmpLine = new ArrayList<String>();
    for(int i=1; i<=cols; ++i){
        tmpLine.add(md.getColumnLabel(i));
    }
    results.add(tmpLine);

    while(resultSet.next()){
        tmpLine = new ArrayList<String>();
        for(int i=1; i<=cols; ++i){
            tmpLine.add(resultSet.getString(i));
        }
        results.add(tmpLine);
    }
    return results;
}

您正在de.telekom.umkreiissche.SQLConnect.exportSQLResultSQLConnect.java:82中执行resultSet.getString'zip',但结果集中没有zip列。如上所述,给出错误的方法是exportSQLResult,您没有显示它。。。请编辑您的问题并添加此方法。Thx@konstantiv.Salikhov,您是对的。脸掌。。。我需要喝杯咖啡,我没有意识到我的出口功能,忘记了她*修改缺少零件的问题并解决问题解决了吗?将解决方案作为答案发布并接受它。