当前位置: 首页 > 知识库问答 >
问题:

如何从JTABLE中插入数据库?

谯英彦
2023-03-14

我有2列的jtable,然后我想把它的值插入数据库;

我知道这可以用像..

    int count=table.getRowCount();
for(int i=0;i<count;i++){
Object obj1 = table.getValueAt(i, 0);
Object obj2 = table.getValueAt(i, 1);

问题是..getRowCount不知道该行是否为空,那么在数据库中,该空值仍将被插入(它将在数据库中生成我的自动增量值)

我的问题是如何从jtable中插入数据库,但是空行不会插入?

如果我要求太多,请给我一个处理空行的线索,

原谅我的英语

下面是向数据库中添加数据的坏方法

public void addToDatabase(){
            for (int i=0;i<table.getRowCount();i++){

                //#####################################
                //maybe need something in here
                if(table.getValueAt(i, 0)==null||table.getValueAt(i, 1) ==null){
                    return;
                //and maybe need something not return, but to get the next row (Just.. maybe ...)    
                //#####################################

                }else{
                    try{
                        Connection c = getCon("databasez");
                        PreparedStatement p = c.prepareStatement("INSERT INTO table_data VALUES (?,?)");
                        p.setString(1, table.getValueAt(i, 0).toString());
                        p.setFloat (Float.parseFloat(table.getValueAt(i, 1).toString()));
                        p.executeUpdate();
                        p.close();
                    }catch(Exception e){
                        JOptionPane.showMessageDialog(this, "THERE WAS AN INVALID DATA");
                    }
                    }
                }
    }

共有1个答案

闾丘高峰
2023-03-14

假设您使用的是DefaultTableModelgetValueat()返回的结果将是null,直到您编辑相应的单元格。

您还可以注册TableModelListener以接收TableModelEvent,该TableModelEvent可以告诉您的侦听器发生了什么变化。

private JTable table = new JTable(1, 2);
...
table.getModel().addTableModelListener(new TableModelListener() {

    @Override
    public void tableChanged(TableModelEvent e) {
        System.out.println(""
            + e.getType() + " "
            + e.getFirstRow() + " "
            + e.getLastRow() + " " 
            + e.getColumn());
    }
});
 类似资料:
  • 问题内容: 我正在尝试将JTable中的多行数据保存到数据库中,这是我的代码供参考: 问题是,它仅将一行数据插入数据库。有人可以帮帮我吗?:( 谢谢! 问题答案: 从循环中删除以下行代码并将其放置在循环之前 示例: 用以下代码替换您的代码 然后运行它认为它起作用。 对于批量插入示例,请参见https://my.vertica.com/docs/5.0/HTML/Master/14878.htm

  • 我已经在Java中制作了一个GUI,它与MySQL服务器连接并插入,删除,更新数据。我在此GUI上有一个部分,您可以在文本区域中编写MySQL查询,结果显示在上。一切都很好!我可以打印或将它们保存到文本文件中! 现在,我想添加另一个特性:当我双击一个特定单元格时,我想更改的数据,并且我想通过单击按钮来更新MySQL表中的数据。 我在网上找遍了,也找不到好的例子,也找不到好的解决办法。我拥有的< c

  • 我想在Jaspersoft Studio中的报表中的详细信息带中插入来自数据库的图像。 JPG图像保存在MySQL中的longblob类型的imgdata字段中。 我试图将此表达式放在Image元素中: 在第一种情况下,我得到以下错误: ...在第二种情况下,这个错误是: 我的问题是:如何将数据库中的图像插入到JasperReports的报表中?

  • 我遵循了从表从数据库显示JTable的方法,但我不知道如何从JTable中插入、更新和删除一行,并在数据库中更新,然后刷新JTable以从新更新的数据库中显示。 我想添加一个“添加项”按钮,然后它会弹出一个框架/窗口,其中有字段要输入,然后在弹出的框架中单击“添加”后,JTable和数据库将同时更新。 有人能帮我做这件事吗?我迷路了..非常感谢!

  • 我试图将选中的项目从checkedlistbox保存到我的SQL数据库,并从同一个SQL数据库填充我的checkedlistbox,到目前为止,我能够从checkedlistbox中获取选中项的文本,并将其保存为字符串,然后使用标签显示是否获取选中项的文本及其工作情况,但当我尝试在数据库中插入选中的数据时,我收到一个错误“连接属性尚未初始化”关于ExecuteNonQuery()方法。 这个错误

  • 问题内容: 我想在我的MySQL数据库中插入整数188和90,但以下代码不起作用: 为什么不起作用? 问题答案: 编辑 为我工作: 在MySQL表;