gpt4 book ai didi

mysql - 结果集结束后的 Java Sql 异常

转载 作者:行者123 更新时间:2023-11-29 15:30:47 26 4
gpt4 key购买 nike

我的代码工作正常,但是当我尝试运行代码时,它首先显示 java.sql.SQLException:After end of result set。我想知道导致此问题的原因以及如何解决此问题,因为这是针对评分项目的。

public GenerateBill() 
{
initComponents();
try
{
Class.forName("java.sql.DriverManager");
Connection con=(Connection)DriverManager.getConnection("jdbc:mysql://localhost:3306/bookstore","root","root");
Statement stmt=(Statement)con.createStatement();
String query, product;
query="select * from store;";
ResultSet rs=stmt.executeQuery(query);
while(rs.next());
{
product=rs.getString("productname");
jComboBox1.addItem(product);
}
}
catch(Exception e)
{
JOptionPane.showMessageDialog(null,e.toString());
}
}

当我执行代码时 Message Dialog Box首先出现。当我单击“确定”时,我尝试创建的页面将打开并正常执行。所以,我很困惑这意味着什么。另外,我是这个网站的新手,所以我真的不知道需要添加多少代码。其余代码适用于不同的 jButton。该页面用于生成账单/收据。

最佳答案

您的代码中有一些部分可以做得更好。具体来说,

  1. 使用com.mysql.jdbc.Driver,因为您的数据库是MySQL,而不是java.sql.DriverManager

  2. 无需转换 Connection 对象。

  3. /bookstore 之后,您可以添加 ?useSSL=false,尽管这不是强制性的,例如 jdbc:mysql://localhost :3306/bookstore?useSSL=false

  4. 使用java.sql.PreparedStatement而不是简单的Statement

  5. catch 后在 finally block 中关闭连接。

最终,您的代码应该类似于以下内容,

public GenerateBill() {

initComponents();

Connection con = null;
ResultSet rs = null;
PreparedStatement stmt = null;

try {
Class.forName("com.mysql.jdbc.Driver");
con = DriverManager.getConnection("jdbc:mysql://localhost:3306/bookstore?useSSL=false","root","root");

String query = "select * from store";
stmt = con.prepareStatement(query);

String product;

rs = stmt.executeQuery();

while(rs.next())
{
product = rs.getString("productname");
jComboBox1.addItem(product);
}
} catch(Exception e) {
JOptionPane.showMessageDialog(null,e.toString());
} finally {
try {
if (rs != null) {
rs.close();
}
if (stmt != null) {
stmt.close();
}
if (con != null) {
con.close();
}
} catch (Exception e) {
LOG.error("Error closing the connection with the database...");
e.printStackTrace();
}
}
}

尝试上述方法并告诉我是否可以。如果没有,请发布整个异常以查看导致问题的原因。

关于mysql - 结果集结束后的 Java Sql 异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58751214/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com