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

如何使一个MySQL的表列不可见

麹浩瀚
2023-03-14
问题内容

我在ID列上运行查询,但我不希望它在我的框架/窗格中可见。我该如何实现?我可以制作另一个表吗,sql /
mysql中是否有一个函数可以隐藏列?我试图用谷歌搜索,但还没有发现任何东西。这是代码

public void tableChanged(TableModelEvent e) {
    int row = e.getFirstRow();
    int col = e.getColumn();
    model = (MyTableModel) e.getSource();
    String stulpPav = model.getColumnName(col);
    Object data = model.getValueAt(row, col);
    Object studId = model.getValueAt(row, 0);
    System.out.println("tableChanded works");
    try {
        new ImportData(stulpPav, data, studId);
    } catch (ClassNotFoundException e1) {
        e1.printStackTrace();
    } catch (SQLException e1) {
        e1.printStackTrace();
    }
}
public class ImportData {
    Connection connection = TableWithBottomLine.getConnection();

    public ImportData(String a, Object b, Object c)
            throws ClassNotFoundException, SQLException {
        Statement stmt = null;
        try {

            String stulpPav = a;
            String duom = b.toString();
            String studId = c.toString();
            System.out.println(duom);
            connection.setAutoCommit(false);
            stmt = connection.createStatement();
            stmt.addBatch("update finance.fin set " + stulpPav + " = " + duom
                    + " where ID = " + studId + ";");
            stmt.executeBatch();
            connection.commit();
        } catch (BatchUpdateException e) {
            e.printStackTrace();
        } catch (SQLException e) {
            e.printStackTrace();
        } finally {
            if (stmt != null)
                stmt.close();
            connection.setAutoCommit(true);
            System.out.println("Data was imported to database");
        }
    }   
    }        
public class MyTableModel extends AbstractTableModel{
    int rowCount;
    Object data [][];
    String columnNames [];
    public  MyTableModel() throws SQLException{
        String query ="SELECT ID, tbl_Date as Date, Flat, Mobile, Food, Alcohol, Transport, Outdoor, Pauls_stuff, Income, Stuff FROM finance.fin";
        ResultSet rs ;
        Connection connection = TableWithBottomLine.getConnection();

        Statement stmt = null;
        stmt = connection.createStatement();
        rs = stmt.executeQuery(query);

        rs.last();
        rowCount = rs.getRow();
        data = new Object[rowCount][11];
        rs = stmt.executeQuery(query);
        for (int iEil = 0; iEil < rowCount; iEil++){
            rs.next();
            data[iEil][0] = rs.getInt("ID");
            data[iEil][1] = rs.getDate("Date");
            data[iEil][2] = rs.getFloat("Flat");
            data[iEil][3]  = rs.getFloat("Mobile");
            data[iEil][4] = rs.getFloat("Food");
            data[iEil][5]  = rs.getFloat("Alcohol");
            data[iEil][6] = rs.getFloat("Transport");
            data[iEil][7] = rs.getFloat("Outdoor");
            data[iEil][8] = rs.getFloat("Pauls_stuff");
            data[iEil][9] = rs.getFloat("Income");
            data[iEil][10] = rs.getFloat("Stuff");
        }

         String[] columnName  = {"ID", "Date","Flat","Mobile"        
                ,"Food","Alcohol","Transport", "Outdoor", "Pauls_stuff", "Income", "Stuff"};
         columnNames = columnName;
    }

问题答案:

这解决了我的问题:

table.removeColumn(table.getColumnModel().getColumn(0));

我把它放在班级建设者中。这样就可以从表的视图中删除该列,但TableModel仍包含“ ID”列。我发现很多人都在寻找一种从sql /
mysql中的SELECT语句中排除特定列(例如自动增量)的选项,但是语言本身没有该功能。因此,我希望该解决方案也能对其他人有所帮助。



 类似资料:
  • 问题内容: 我有Java / Kotlin互操作问题。Kotlin不可变列表被编译为可变的普通java.util.ArrayList! Kotlin(图书馆): Java(消费者): 从Java的角度来看,如何也使我的Kotlin类完全不可变? 问题答案: 默认情况下,Kotlin中的所有非集合都是 编译时只读类型 ,但不是 不可变的 。请参见以下代码段: 要真正拥有一个不变的列表,请考虑Guav

  • 给定需要排序和分组的对象列表: 我想将列表分组为列表中的列表,按widgetCode分组,每个子列表的元素按照它们在原始列表中遇到的顺序排列。我知道可以使用收集器将它们分组到列表映射中: 我并不认为键是理所当然地排序的,所以我采取了额外的步骤,将整个内容加载到SortedMap类型中: 我知道我可以通过使用.values()从sortedWidgetMap获取集合,而且我猜它是一个有序集合,因为它

  • 我有一个Java/Kotlin互操作问题。一个Kotlin不可变列表被编译成一个普通的java.util.ArrayList,它是可变的! 静态编程语言(库): Java(消费者): 如何使我的 Kotlin 类从 Java 的角度来看也是完全不可变的?

  • 假设我有员工数据列表。 使用上面的empList,如何获得两个不同的列表,如年龄

  • rbindlist做的正是我需要的,但'do.call'做不到! do.Call不是我想要的

  • 问题内容: 我想要一个有两列的表。一栏用于记录的创建时间,另一栏用于记录的修改时间。我希望这些值由数据库处理。我不想让我的应用程序层考虑一下。 我知道,如果您有一个带有或的列,那么您将无法拥有另一个列。您可以使用,但没有办法在触发器之外默认它,据我所知。 我发现您可以具有多个列,方法是将每个列不带或保留,并在创建记录时插入,以使每个列具有当前时间戳。从这一点开始,第一列将自动更新。 这个效果非常好