簡體   English   中英

SQLException:無效的列名...?

[英]SQLException: Invalid Column Name…?

我有一個JSP文件,該文件將在Eclipse,Maven和Tomcat的幫助下部署在Java項目中。 我還有一些其他的JSP文件與此文件幾乎相同,盡管它們運行不同的操作。 無論如何,當我轉到頁面時,我已經給出了:

org.apache.jasper.JasperException: An exception occurred processing JSP page /entertime2.jsp at line 106

103:    rsBug = psBug.executeQuery();
104:
105:    while(rsBug.next()) {
106:        Bug b = new Bug(rsBug);
107:        out.println("<option value='" + b.get(Bug.BUG_ID) + "'>" + b.get(Bug.TITLE) + "</option>");
108:    }
109:    rsBug.close();

root cause

javax.servlet.ServletException: java.sql.SQLException: Invalid column name ixPersonOpenedBy.

Bug是一個自定義類,可以接收結果集rsBug並執行以下操作:

setValue(Bug.BUG_ID,rs.getString(Bug.BUG_ID));
setValue(Bug.PERSON_OPENED_BY,rs.getString(Bug.PERSON_OPENED_BY));
setValue(Bug.PERSON_ASSIGNED_TO,rs.getString(Bug.PERSON_ASSIGNED_TO));
setValue(Bug.TITLE, rs.getString(Bug.TITLE));
setValue(Bug.PROJECT_ID,rs.getString(Bug.PROJECT_ID));

其中BUG_ID,PERSON_OPENED_BY,PERSON_ASSIGNED_TO,TITLE和PROJECT_ID都是Bug類的所有字符串成員,它們與數據庫中存儲的Bug表中的列名相對應。 現在,表中有一個ixPersonOpenedBy列,但以前從未給我任何問題。 我不確定它是否與我嘗試執行的SQL語句有關,但是我之前在其他JSP之一中使用了EXACT相同的語句,並且沒有給我帶來任何麻煩。 此外,該錯誤在項目的早期部署中不會彈出。 我在一個不相關的變量中有一個錯字,一旦修正,這個家伙突然冒出來。

無論如何,當我知道“應該”列有效時,誰能看到為什么會出現此錯誤? 如果您需要查看數據庫中更多的JSP,Bug類或Bug表,請告訴我; 任何幫助表示贊賞。

編輯:這是我正在使用的兩個SQL語句,但我不確定是否其中一個引起了問題。

SELECT p.ixPerson, p.sFullName 
FROM Person p, jwTeamMembers t 
WHERE p.ixPerson = t.ixPerson 
ORDER BY p.sFullName ASC


SELECT b.ixBug, b.sTitle 
FROM Bug b, Person per, Project p, Area a, jwTime t, jwTeamMembers m, jwTeam jt, Status s, jwDivision d
WHERE per.ixPerson = t.ixPerson AND t.ixBug = b.ixBug AND b.ixProject = p.ixProject AND b.ixArea = a.ixArea
    AND per.ixPerson = m.ixPerson AND m.ixTeam = jt.ixTeam AND b.ixStatus = s.ixStatus AND a.ixDivision *= d.ixDivision
    AND (per.ixPerson = ?)
GROUP BY b.ixBug, b.sTitle
ORDER BY b.ixBug DESC

第二條語句中的參數填充為:

psBug.setInt(1, Integer.valueOf(personId).intValue());

java.sql.SQLException:無效的列名ixPersonOpenedBy。

SELECT不會返回提到的列。

實際上,您的兩個SELECT查詢都沒有指定該列。 相應地修復它。 例如

SELECT b.ixBug, b.sTitle, b.ixPersonOpenedBy

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM