java - 将数据加载到表中

标签 java mysql

  private void update_table(){
        try{
        DefaultTableModel df=(DefaultTableModel)jTable1.getModel();
        Conn c=new Conn();
            Statement s=c.createConn().createStatement();
            //  df.getDataVector().removeAllElements();
            String sql="Select * from leave_taken";
            ResultSet rs=s.executeQuery(sql);
            while(rs.next()){
                Vector v=new Vector();
                df.addRow(v);
                jTable1.setModel(DbUtils.resultSetToTableModel(rs));
            }
        } catch (Exception e) {
            e.printStackTrace();
        }

这是我写的。我想通过这种方法将数据加载到表中。但它只加载表格标题。如何将表数据加载到表中?这段代码中需要添加一些东西吗?

最佳答案

当您执行df.addRow(v)时,您的v变量恰好是空 vector 。看来您的代码中不需要 df 。

处理数据的完整示例

enter image description here

package javaapplication2;

import javax.swing.*;
import javax.swing.table.*;
import java.awt.event.*;
import java.awt.*;
import java.sql.*;
import net.proteanit.sql.DbUtils;

public class JavaApplication2
{

    public static void main(String[] args)
    {
        Runnable r = new Runnable()
        {
            @Override
            public void run()
            {
                JFrame f = new JFrame();
                JPanel p = new JPanel();
                f.setContentPane(p);
                f.setPreferredSize(new Dimension(600, 600));
                f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

                final JTable t = new JTable();
                p.add(new JScrollPane(t), BorderLayout.CENTER);

                JButton b = new JButton("Run");
                p.add(b, BorderLayout.WEST);
                b.addActionListener(
                    new ActionListener()
                    { 
                        @Override
                        public void actionPerformed(ActionEvent ae)
                        {
                            try
                            {
                                Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
                                Connection c = DriverManager.getConnection("jdbc:sqlserver://localhost;integratedSecurity=true;databaseName=stackoverflow");
                                Statement s  = c.createStatement();
                                ResultSet rs = s.executeQuery("SELECT * FROM leave_taken");
                                t.setModel(DbUtils.resultSetToTableModel(rs));
                            }
                            catch (SQLException es)
                            {
                                es.printStackTrace();
                            }
                            catch (ClassNotFoundException ecn)
                            {
                                ecn.printStackTrace();
                            }
                        }
                    });
                f.pack();
                f.setVisible(true);
            } 
        };
        EventQueue.invokeLater(r);
    }
}

应用程序启动时的结果。

enter image description here

按下“运行”按钮后的结果。

enter image description here

关于java - 将数据加载到表中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33665460/

相关文章:

java - 在 ListFragment 中显示自定义 ArrayAdapter

c# - 无法将asp.net页面连接到MySQL数据库

java - ORM建模: Database first vs classes first

php - 如何更改 Laravel 中的 URL 结构

mysql - 通过 bash 脚本导入 SQL 转储

MySQL异常: Execute SQL Transaction

java - Android - 创建音频文件的波形(OGG)

java - 无法在 AWS Elastic Beanstalk Java SE 平台上设置 JVM 堆大小

java - 可能因不同原因而失败的方法的标准模式是什么?

Java While 循环检查时间但不执行方法