【问题标题】:SELECT * not working with mysql and JavaSELECT * 不适用于 mysql 和 Java
【发布时间】:2014-05-04 20:41:54
【问题描述】:

我是 Java 新手,我正在开发一个简单的程序,但我遇到了一个我无法解决的问题,我通过 jdbc 连接到 mysql,我尝试从表中的数据库中检索一些数据,所以当我使用SQL SELECT * 语句不起作用,但是当我使用 SELECT 然后指定一些列时,它起作用了。 这是代码:-

import java.sql.*;
import javax.swing.*;
import net.proteanit.sql.DbUtils;

public class admins_records extends javax.swing.JFrame {
    Connection con = null;
    ResultSet rs = null;
    PreparedStatement pst = null;

    public admins_records() {
        initComponents();
        con = db.mysql_connect();
        update_table();
    }

    private void update_table(){
        try{
            String sql = "SELECT * FROM admins";
            pst = con.prepareStatement(sql);
            rs = pst.executeQuery();
            admins_table.setModel(DbUtils.resultSetToTableModel(rs));
        }catch(Exception e){
            JOptionPane.showMessageDialog(null, e);
        }
    }

当我使用SELECT col1, col2 ... etc 时,它可以工作,但是当我使用SELECT * 时,它给了我这个错误:-

有什么建议吗?提前致谢。

【问题讨论】:

  • 你的意思是 SELECT col1,col2..coln FROM tableName ??
  • 您的 DbUtils.resultSetToTableModel 方法正在返回 null 引用。检查一下,你会发现问题所在
  • 我只是在你写它的时候修改它兄弟哈哈谢谢
  • @BackSlash 你能告诉我更多细节吗?
  • @user2869402 不,我不能。我没有关于你班级的信息。请发布resultSetToTableModel 方法的代码。

标签: java mysql sql


【解决方案1】:

这里是DbUtils#resultSetToTableModel()的源代码。

这里是一些代码sn-p。如果有任何异常则返回null,你不能将null设置为TableModel

public static TableModel resultSetToTableModel(ResultSet rs) 
   try{
       ...
       for (int i = 1; i <= numberOfColumns; i++) {
           newRow.addElement(rs.getObject(i));
       }
       ...
   }catch (Exception e) {
        e.printStackTrace();

        return null;
   }
}

【讨论】:

  • 创建一个具有不同名称的新类并从实际实现中复制概念并在代码中使用新类而不是实际类来找出异常。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-02-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-03-14
  • 2018-08-23
相关资源
最近更新 更多