- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试从我在 Netbeans 中设置的嵌入式数据库填充我的 JTable。
我的数据库包含 3 行和 3 列,我想将其插入到 JTable 中,并使该表在我的 GUI 应用程序中可见。
但是,如上标题所述,我收到 java.sql.SQLException 错误,并且我的表在我的 GUI 应用程序中不可见。
这是我的代码:
public void FillTable(JTable table, String Query)
{
try
{
Class.forName("org.apache.derby.jdbc.EmbeddedDriver").newInstance();
Connection conn = DriverManager.getConnection("jdbc:derby:STOCK_CONTROL");
Statement stat = conn.createStatement();
ResultSet rs = stat.executeQuery(Query);
//Remove previously added rows
while (table.getRowCount() > 0)
{
((DefaultTableModel) table.getModel()).removeRow(0);
}
int columns = rs.getMetaData().getColumnCount();
while (rs.next())
{
Object[] row = new Object[columns];
for (int i = 1; i <= columns; i++)
{
row[i - 1] = rs.getObject(i);
}
//The error is being generated here at 'rs.getRow()'
((DefaultTableModel) table.getModel()).insertRow(rs.getRow() - 1, row);
}
rs.close();
stat.close();
conn.close();
}
catch (InstantiationException |
IllegalAccessException |
ClassNotFoundException |
SQLException e)
{
System.out.println(e);
e.printStackTrace();
}
}
然后我创建我的表并调用上面的方法:
JTable tigerTable = new JTable();
FillTable(tigerTable, "SELECT * FROM TIGER_INFO");
我试图找到有关导致此错误的原因的信息,但无济于事。
我的问题是,如何正确地从我的嵌入式数据库填充我的 JTable,同时又能避免我遇到的这个未知错误?
这个错误到底是什么意思?我不确定“滚动光标”是什么。
最佳答案
如 ResultSet.getRow()
中所述:
Note: Support for the
getRow
method is optional forResultSet
s with a result set type ofTYPE_FORWARD_ONLY
[..]Throws:
[..]
SQLFeatureNotSupportedException
- if the JDBC driver does not support this method
您要么需要使用
请求可滚动光标conn.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE, ResultSet.CONCUR_READ_ONLY);
或者 - 可能更好 - 自己跟踪行号而不是使用 ResultSet.getRow()
。例如:
int rowIdx = 0;
while (rs.next()) {
Object[] row = new Object[columns];
// ...
((DefaultTableModel) table.getModel()).insertRow(rowIdx++, row);
}
我已经有一段时间没有用 swing 做任何事情了,但是从表模型中删除现有行并调用 addRow
可能会更简单。
关于java - 'getRow()' 方法只允许在滚动游标上 SQLException 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42650254/
我正在使用 JDBC,并且正在运行一个查询。有没有办法从返回的 SQLException 对象中获取失败的原因? 特别是,我想知道我的查询是否违反了外键约束(以及哪一个)或键约束。 此结果是否特定于供
我用 C# 编写了一段代码,它在我的计算机上运行良好,在 Windows 7 (MS SQL Server 2008) 上运行,但在另一台计算机上运行 Windows Vista (MS SQL Se
我有一个 Web 服务代码,它连接到在 MySQL 上运行的数据库。我清理并构建了它,部署成功,但是当我测试时出现以下错误: Invoking wsimport with http://localho
这个问题已经有答案了: Getting java.sql.SQLException: Operation not allowed after ResultSet closed (2 个回答) 已关闭
我的 user 表以前有字符串主键,现在我添加了一个新字段 userid bigint(20) 并制作了这个主键。然后添加 ALTER TABLE smsusers AUTO_INCREMENT =
我正在尝试在 HSQLDB 数据库中插入新行。我有这个代码: private final String SQL_CREAR_ATLETA=" INSERT INTO ATLETA (ID_ATLETA
错误的屏幕截图我收到指向ItemsService中下面的‘GetAllItems()’方法的SQLException。“无效的列名OrderID1”。我有两个实体,Order和Item,我希望与每个I
错误的屏幕截图我收到指向ItemsService中下面的‘GetAllItems()’方法的SQLException。“无效的列名OrderID1”。我有两个实体,Order和Item,我希望与每个I
Screenshot of errorI am getting an SQLException pointing at the 'GetAllItems()' method below in t
我正在运行我的代码并收到此错误。但这是什么意思? The network path was not found Description: An unhandled exception occurred
对于确实具有平衡事务块的存储过程,您是否遇到过这种异常? 我仔细检查了存储过程,它正好有一个 TRANSACTION BEGIN和对应TRANSACTION END 错误记录 SqlException
我正在编写一个 MVC 5 互联网应用程序,我有一个每小时执行一次的重复任务。此任务使用 DbContext 类更新一些模型对象。该应用程序部署为 Azure 网站。 我每隔几个小时就会收到以下错误:
我有一个程序,可以将大约 1GB 的数据上传到 SQL Azure 数据库。我使用 SqlBulkCopy 上传此数据。我上传了约8,000,000个实体,平均一次上传32,000个实体,最多一次上传
我将我的 SQL Server 数据库从本地移植到生产环境,并在连接期间突然遇到以下错误 System.Data.SqlClient.SqlException: A connection was su
在询问之前我已经搜索过了,但我不知道我是否做错了什么。 我正在尝试做类似的事情: String query = "select nombre from DatosPersonas where nomb
当我尝试运行我的项目时,出现以下错误: java.sql.SQLException: Io exception: Connection refused(DESCRIPTION=(TMP=)(VSNNU
我正在将 DB2 与 JDBC 结合使用,当我在连接闲置几分钟后首次尝试运行时,下面的代码会抛出 SQLException。从第二次开始,它将完全按照它必须的方式工作。 ResultSet.next(
我试图插入用户从我在 NetBeans 上制作的 Java GUI 输入的信息,但我不断收到异常,我似乎无法找出我做错了什么。 (数据库名称是student,表也称为student(我知道不好)它有8
为什么我们在创建 jdbc 连接时必须抛出 SQLException,它的目的是什么?它是什么类型的异常?选中、运行时、未选中? 最佳答案 SQLException 派生自 Exception,但不是
我有一个现有的应用程序,它使用 MS SQL 存储过程来执行一些业务规则。当检测到错误时,使用 RAISERROR 将其作为异常返回到我的 .Net 应用程序。 然后 .Net 应用程序可以使用 Tr
我是一名优秀的程序员,十分优秀!