【发布时间】:2015-10-18 16:01:28
【问题描述】:
我有一个图表,它将显示在特定时间段内链接到员工编号的报价和发票之间的比较。当我运行应用程序时,我收到了这条臭名昭著的错误消息:
java.lang.IllegalArgumentException: Null 'key' 参数。 在 org.jfree.chart.util.ParamChecks.nullNotPermitted(ParamChecks.java:65) 在 org.jfree.data.DefaultKeyedValues.setValue(DefaultKeyedValues.java:234) 在 org.jfree.data.DefaultKeyedValues2D.setValue(DefaultKeyedValues2D.java:341) 在 org.jfree.data.category.DefaultCategoryDataset.setValue(DefaultCategoryDataset.java:262) 在 org.jfree.data.category.DefaultCategoryDataset.setValue(DefaultCategoryDataset.java:278) 在 SV_ManagerDivision.SV_ManagerEmpPerformance.monthGraph(SV_ManagerEmpPerformance.java:577) 在 SV_ManagerDivision.SV_ManagerEmpPerformance.btnViewQIActionPerformed(SV_ManagerEmpPerformance.java:303) 在 SV_ManagerDivision.SV_ManagerEmpPerformance.access$200(SV_ManagerEmpPerformance.java:24) 在 SV_ManagerDivision.SV_ManagerEmpPerformance$3.actionPerformed(SV_ManagerEmpPerformance.java:159) 在 javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:2022)
我已经尝试了所有方法来解决它,甚至是这个 Stack Overflow 问题:Null 'key' argument,但它并没有帮助我解决问题。
此图生成的编码是:
PreparedStatement stmt = con.prepareStatement("select username, count(invoice_number) as invoiceCount, invoice_date from invoicedb where username = '" + empno + "' "
+ "and extract(month from invoice_date) = '" + text + "' and extract(year from invoice_date) = '" + year + "'");
ResultSet rs = stmt.executeQuery();
DefaultCategoryDataset ddataset = new DefaultCategoryDataset();
while (rs.next()) {
ddataset.setValue(rs.getInt("invoiceCount"),
"invoiceCount",
rs.getString("username"));
}
stmt = con.prepareStatement("select username, count(quote_number) as quoteCount, quote_date from quotedb where username = '" + empno + "' and extract(month from quote_date) = '" + text + "'"
+ " and extract(year from quote_date) = '"+ year +"'");
rs = stmt.executeQuery();
while (rs.next()) {
ddataset.setValue(rs.getInt("quoteCount"),
"quoteCount",
rs.getString("username"));
}
错误似乎在这一行:
ddataset.setValue(rs.getInt("invoiceCount"),
是我做错了什么还是有其他方法可以解决这个错误?
【问题讨论】:
-
检测到 SQL 注入。使用参数绑定。
-
@lad2025 请原谅我的无知,但我该怎么做呢?
-
然后至少显示堆栈跟踪的前 10 行。虽然我不明白发布这一切有什么难的。您无需键入它。只需复制并粘贴它。发布它很重要,因为它准确地说明了哪里出了问题。你问这个问题是因为你不知道如何阅读堆栈跟踪。
-
我从未见过有人抱怨这里存在堆栈跟踪。而且我经常来。我看到的是人们抱怨发布了不相关的代码。但这根本不是一回事。当询问错误时,错误堆栈跟踪永远不会无关紧要。
标签: java mysql swing netbeans graph