当前位置: 首页 > 面试题库 >

Java-如何获取结果集上的列名

潘弘博
2023-03-14
问题内容

您好,当没有匹配的学生时,我正在尝试犯一个错误…它将以这种方式显示, No matching records found并且我希望列名保持不变,但仍无法弄清楚…可以有人告诉我这是否是对??

这是我的函数…并且在其中添加错误的地方添加了注释…但是我不知道如何获取列名

public void SearchTableStudent() {
        String tempSearchValue = searchStudent.getText().trim();
        boolean empty = true;
        sql = "SELECT student_id as 'Student ID',"
                + "concat(lastname, '  ,  ', firstname, ' ', middlename) as 'Name'"
                + "FROM user "
                + "WHERE CAST(student_id as CHAR) LIKE '%" + tempSearchValue + "%'";
        try {
            pst = conn.prepareStatement(sql);
            rs = pst.executeQuery();
            while(rs.next()) {
                table.setModel(DbUtils.resultSetToTableModel(rs));
                empty = false;
            }
            if(empty) {
                String error = "";
                table.setModel(new javax.swing.table.DefaultTableModel(
                    new Object [][] {
                        {"No matching records found",null}
                    },
                    new String [] {
     /** I WANT TO PUT THE SAME COLUMN NAME ON MY DATABASE SELECTED BUT DON't Know
 WHAT FUNCTION TO DO*/
                    }
                ));
            }
        } catch (Exception e) {
            JOptionPane.showMessageDialog(null, e.getMessage());
        }
    }

我这样尝试,但仍然给了我NULL!该代码在以下empty = false;

for(int i=0; i<table.getColumnCount(); i++) {
    test[i] = table.getColumnName(i);
}

问题答案:

ResultSetMetaData metaData = resultSet.getMetaData();
int count = metaData.getColumnCount(); //number of column
String columnName[] = new String[count];

for (int i = 1; i <= count; i++)
{
   columnName[i-1] = metaData.getColumnLabel(i);
   System.out.println(columnName[i-1]);
}


 类似资料:
  • 问题内容: 我正在使用CsvJdbc(它是用于csv文件的JDBC驱动程序)来访问csv文件。我不知道csv文件包含多少列。如何获得列数?是否有任何JDBC函数?我在java.sql.ResultSet中找不到任何方法。 为了访问该文件,我使用类似于CsvJdbc网站上示例的代码。 问题答案: 您可以从ResultSetMetaData获取列号:

  • 问题内容: 这个可以吗 ? 然后在尝试打印时 我有一个错误 问题答案: 尝试mysql_fetch_field函数。 例如:

  • 我有期货清单 我需要的是一种获取结果列表的方法 你能在java中提供解决方案吗? 类似于

  • 问题内容: 我从ResultSet获取Date对象时遇到问题。在数据库中,它具有一个值(例如2014-08-01),并且从resultSet获取它之后,它具有另一个值(2014-08-31)。我知道ResultSet的getDate方法返回java.sql.Date,但是我尝试了一些解决方案,例如: 或 但问题是相同的。如果我尝试, 它将抛出NullPointerException。 有人可以解释

  • 问题内容: 考虑这个SQL查询 该查询将仅在字段中返回一个值。 有没有一种方法可以在不使用a并指向返回数组的第一个值的情况下获取该值? 问题答案: 将允许您直接从结果集中提取值,而不必使用 提取 方法。这是一个非常简单的示例,说明如何使用它来获取单个值: 该函数有三个参数。第一个是结果集本身,第二个是行索引,第三个是字段索引。我只使用前两个参数,因为第三个参数默认为0,即返回第一个字段。

  • 获取查询对象的结果集 // 查询邮箱或密码是否正确 async checkEmailAndPassword(loginData) { // 解构查询对象中的结果 const { dataValues: {id,username,password,email} } = await this.ctx.model.User.findOne({