关于Jtable的刷新问题

关于Jtable的刷新问题

获取数据库数据并存入Jtable方法

//sql操作

public static Connection getConnection(){

	Connection conn = null;
	try {
        //注册驱动
        Class.forName("com.mysql.cj.jdbc.Driver");
      System.out.println("数据库驱动加载成功");
        //打开链接
        conn = (Connection) DriverManager.getConnection(url, user, passWord);
       System.out.println("已成功的与数据库MySQL建立连接!");
    }catch (Exception e){
        e.printStackTrace();
    }
    return conn;
}



public Vector getRows(String cardID) throws Exception{
    conn = getConnection();
    String sql="select * from 存取款记录表 where 银行卡号=?";
    ps=conn.prepareStatement(sql);
    ps.setString(1,cardID);
    rs=ps.executeQuery();


    rows = new Vector();
    ResultSetMetaData rsmd=rs.getMetaData();
    while ((rs.next())){
        rows.addElement(getNextRows(rs,rsmd));
    }
    return rows;
}


private Vector getNextRows(ResultSet rs, ResultSetMetaData rsmd) throws SQLException{
    Vector currentRow=new Vector();
    for(int i = 1; i <= rsmd.getColumnCount(); i++){
        currentRow.addElement(rs.getString(i));
    }
    return currentRow;
}

public Vector getHead()throws SQLException{
    getConnection();
    String sql="select * from 存取款记录表";
    ps=conn.prepareStatement(sql);
    rs=ps.executeQuery();
    boolean moreRecords=rs.next();
    if(!moreRecords){
        JOptionPane.showMessageDialog(null,"无记录");
    }
    columnHeads = new Vector();
    ResultSetMetaData rsmd = rs.getMetaData();
    for(int i=1;i<=rsmd.getColumnCount();i++){
        columnHeads.add((rsmd.getColumnName(i)));
    }
    return columnHeads;
}

然后只需在main 里调用table

//获取数据并创建table

	Card card = new Card();
	sql=new mysqlCon();

	Vector rowData=sql.getRows(card.getCardID());
	Vector columnNames=sql.getHead();
	table=new JTable();
	model=new DefaultTableModel(rowData,columnNames);
	table.setModel(model);
	JScrollPane jsp=new JScrollPane(table);

其中 Card类 为 卡的信息 包含卡的ID之类的get set 方法

就能将数据库里面的数据存储到Jtable 里面

你可能感兴趣的:(JTable)