Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/372.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 从数据库创建JTable_Java_Sql_Swing_Jtable_Odbc - Fatal编程技术网

Java 从数据库创建JTable

Java 从数据库创建JTable,java,sql,swing,jtable,odbc,Java,Sql,Swing,Jtable,Odbc,我正试图在我的库存系统中生成一个JTable,我想在用户单击查看账单按钮时显示数据库表到JTable的记录 数据库结构 比尔·马斯特 票据Id(主键INT):-存储票据编号 账单日期(日期):存储账单日期 客户名称(VARCHAR(50)):客户名称 总金额(数字(6)):票据总金额 现金盘(编号(2)):折扣 总计(数量(6)):总计(总数) UID(VARCHAR(10))存储生成账单的人。(员工ID) 账单详情 工程量清单详细ID(INT主键)详细工程量清单1 票据Id(票据母版的外键)

我正试图在我的库存系统中生成一个JTable,我想在用户单击查看账单按钮时显示数据库表到JTable的记录

数据库结构

比尔·马斯特

  • 票据Id(主键INT):-存储票据编号
  • 账单日期(日期):存储账单日期
  • 客户名称(VARCHAR(50)):客户名称
  • 总金额(数字(6)):票据总金额
  • 现金盘(编号(2)):折扣
  • 总计(数量(6)):总计(总数)
  • UID(VARCHAR(10))存储生成账单的人。(员工ID)

    账单详情

  • 工程量清单详细ID(INT主键)详细工程量清单1
  • 票据Id(票据母版的外键)
  • 物料标识(库存外键)
  • 数量(整数)
  • 费率(数字(5))
  • 总数(5人)
  • 我想在用户使用查询单击查看账单按钮时显示详细账单

    选择*from Bill\u Master internal join Bill\u Details on Bill\u Master.Bill\u Id=Bill\u Details.Bill\u Id.

    数据库连接类型:ODBC
    请帮助生成表格。

    您可以从ResultSet获取数据,并使用vector将表格的每一行添加到DefaultTableModel

    如以下示例所示:

    try {
            ResultSetMetaData rm = rs.getMetaData();
            int j = rm.getColumnCount();
            JTable table=new JTable();
            int rowCount = table.getRowCount();
            DefaultTableModel model = (DefaultTableModel) table.getModel();
            Vector v = null;
            if (rowCount == 0) {
                while (rs.next()) {
                    v = new Vector();
    
                    for (int i = 1; i <= j; i++) {
                        String type = rm.getColumnTypeName(i);
                        // System.out.println(type);
                        switch (type) {
                            case "FLOAT":
                                v.add(rs.getFloat(i));
                                break;
                            case "COUNTER":
                                v.add(rs.getInt(i));
                                break;
                            case "VARCHAR":
                                v.add(rs.getString(i));
                                break;
                            case "INTEGER":
                                v.add(rs.getInt(i));
                                break;
                            case "DATETIME":
                                v.add(rs.getString(i));
                                break;
                            case "MEDIUMINT":
                                v.add(rs.getInt(i));
                                break;
                            case "LONGBLOB":
                                v.add(rs.getTime(i));
                                break;
                            default:
                                v.add(rs.getString(i));
                        }
                    }
                    model.addRow(v);
                }
    
    试试看{
    ResultSetMetaData rm=rs.getMetaData();
    int j=rm.getColumnCount();
    JTable table=新的JTable();
    int rowCount=table.getRowCount();
    DefaultTableModel=(DefaultTableModel)table.getModel();
    向量v=零;
    如果(行计数==0){
    while(rs.next()){
    v=新向量();
    
    对于(int i=1;i您可以从ResultSet获取数据,并使用vector将表的每一行添加到DefaultTableModel

    如以下示例所示:

    try {
            ResultSetMetaData rm = rs.getMetaData();
            int j = rm.getColumnCount();
            JTable table=new JTable();
            int rowCount = table.getRowCount();
            DefaultTableModel model = (DefaultTableModel) table.getModel();
            Vector v = null;
            if (rowCount == 0) {
                while (rs.next()) {
                    v = new Vector();
    
                    for (int i = 1; i <= j; i++) {
                        String type = rm.getColumnTypeName(i);
                        // System.out.println(type);
                        switch (type) {
                            case "FLOAT":
                                v.add(rs.getFloat(i));
                                break;
                            case "COUNTER":
                                v.add(rs.getInt(i));
                                break;
                            case "VARCHAR":
                                v.add(rs.getString(i));
                                break;
                            case "INTEGER":
                                v.add(rs.getInt(i));
                                break;
                            case "DATETIME":
                                v.add(rs.getString(i));
                                break;
                            case "MEDIUMINT":
                                v.add(rs.getInt(i));
                                break;
                            case "LONGBLOB":
                                v.add(rs.getTime(i));
                                break;
                            default:
                                v.add(rs.getString(i));
                        }
                    }
                    model.addRow(v);
                }
    
    试试看{
    ResultSetMetaData rm=rs.getMetaData();
    int j=rm.getColumnCount();
    JTable table=新的JTable();
    int rowCount=table.getRowCount();
    DefaultTableModel=(DefaultTableModel)table.getModel();
    向量v=零;
    如果(行计数==0){
    while(rs.next()){
    v=新向量();
    
    对于(int i=1;i您可以从ResultSet获取数据,并使用vector将表的每一行添加到DefaultTableModel

    如以下示例所示:

    try {
            ResultSetMetaData rm = rs.getMetaData();
            int j = rm.getColumnCount();
            JTable table=new JTable();
            int rowCount = table.getRowCount();
            DefaultTableModel model = (DefaultTableModel) table.getModel();
            Vector v = null;
            if (rowCount == 0) {
                while (rs.next()) {
                    v = new Vector();
    
                    for (int i = 1; i <= j; i++) {
                        String type = rm.getColumnTypeName(i);
                        // System.out.println(type);
                        switch (type) {
                            case "FLOAT":
                                v.add(rs.getFloat(i));
                                break;
                            case "COUNTER":
                                v.add(rs.getInt(i));
                                break;
                            case "VARCHAR":
                                v.add(rs.getString(i));
                                break;
                            case "INTEGER":
                                v.add(rs.getInt(i));
                                break;
                            case "DATETIME":
                                v.add(rs.getString(i));
                                break;
                            case "MEDIUMINT":
                                v.add(rs.getInt(i));
                                break;
                            case "LONGBLOB":
                                v.add(rs.getTime(i));
                                break;
                            default:
                                v.add(rs.getString(i));
                        }
                    }
                    model.addRow(v);
                }
    
    试试看{
    ResultSetMetaData rm=rs.getMetaData();
    int j=rm.getColumnCount();
    JTable table=新的JTable();
    int rowCount=table.getRowCount();
    DefaultTableModel=(DefaultTableModel)table.getModel();
    向量v=零;
    如果(行计数==0){
    while(rs.next()){
    v=新向量();
    
    对于(int i=1;i您可以从ResultSet获取数据,并使用vector将表的每一行添加到DefaultTableModel

    如以下示例所示:

    try {
            ResultSetMetaData rm = rs.getMetaData();
            int j = rm.getColumnCount();
            JTable table=new JTable();
            int rowCount = table.getRowCount();
            DefaultTableModel model = (DefaultTableModel) table.getModel();
            Vector v = null;
            if (rowCount == 0) {
                while (rs.next()) {
                    v = new Vector();
    
                    for (int i = 1; i <= j; i++) {
                        String type = rm.getColumnTypeName(i);
                        // System.out.println(type);
                        switch (type) {
                            case "FLOAT":
                                v.add(rs.getFloat(i));
                                break;
                            case "COUNTER":
                                v.add(rs.getInt(i));
                                break;
                            case "VARCHAR":
                                v.add(rs.getString(i));
                                break;
                            case "INTEGER":
                                v.add(rs.getInt(i));
                                break;
                            case "DATETIME":
                                v.add(rs.getString(i));
                                break;
                            case "MEDIUMINT":
                                v.add(rs.getInt(i));
                                break;
                            case "LONGBLOB":
                                v.add(rs.getTime(i));
                                break;
                            default:
                                v.add(rs.getString(i));
                        }
                    }
                    model.addRow(v);
                }
    
    试试看{
    ResultSetMetaData rm=rs.getMetaData();
    int j=rm.getColumnCount();
    JTable table=新的JTable();
    int rowCount=table.getRowCount();
    DefaultTableModel=(DefaultTableModel)table.getModel();
    向量v=零;
    如果(行计数==0){
    while(rs.next()){
    v=新向量();
    对于(int i=1;i
    遵循一些关于如何使用jTable的教程

    遵循一些关于如何使用jTable的教程

    遵循一些关于如何使用jTable的教程



    遵循一些关于如何使用jTable的教程,首先看一看。我建议您创建一个POJO,表示您将从数据库中收集的数据,这将使您在长期运行时更易于管理。我建议您创建一个POJO,表示您将从数据中收集的数据在基础上,通过查看,可以更轻松地在长运行开始时进行管理。我建议您创建一个POJO,它表示您将从数据库收集的数据,通过查看,可以更轻松地在长运行开始时进行管理。我建议您创建一个POJO,它表示您将从数据库收集的数据数据库,这将使长期运行时更容易管理。我没有为此创建任何表。我希望在单击按钮时创建和显示表。上面的代码可以做到这一点吗?我是java初学者。如果你能解释一下的话。谢谢。是否有任何方法可以使用另一个框架弹出整个表?很简单。你必须重新创建创建一个新的JFrame并将此表作为参数传递到构造函数中,然后将此表添加到frame并设置此框架。@Aswin,不需要switch语句。只需从ResultSet中获取对象并将其添加到向量中即可。@chintan Hi。我实现了您的代码,并尝试使用JOptionPane显示它。'JPanel panel=new JPanel(new GridLayout();JScrollPane scrollPane=new JScrollPane();scrollPane.setViewportView(表格);panel.add(scrollPane);JOptionPane.showConfirmDialog(null,面板,“账单明细”,JOptionPane.OK_取消_选项)但它显示的是一个空白页面。你能帮我解决这个问题吗?我没有为此创建任何表格。我想在单击按钮时创建并显示表格。上面的代码可以做到吗?我是java初学者。如果你能解释一下的话。谢谢。还有什么方法可以使用另一个框架弹出整个表格吗?很简单。你可以ave创建一个新的JFrame并将此表作为参数传递到构造函数中,然后将此表添加到frame并设置此框架。@Aswin,不需要switch语句。只需从ResultSet中获取对象并将其添加到向量。@chintan Hi。我实现了您的代码,并尝试使用JOptionPane显示它。'JPanel panel=new JPanel(新建GridLayout());JScrollPane scrollPane=新建JScrollPane();scrollPane.setViewportView(表);panel.add(scrollPan