用JTable显示数据库数据

用到DefaultTabelModel类

public class JTableTest {
	
	
	public static void main(String[] args) throws DAOException {
		
		DefaultTableModel model = new DefaultTableModel(0,3);
		JTable table = new JTable(model);
		JFrame jf = new JFrame();
		
		ICostDAO dao = DAOFactory.getCostDAO();
		
		model.setRowCount(0);
		try {
			List<Cost> costs = dao.findAll();
			for(int i=0;i<costs.size();i++){
				Cost c = (Cost)costs.get(i);
				Object[] obj = {c.getId(), c.getCostType(), c.getName()};
				model.insertRow(table.getSelectedRowCount(), obj);
			}
						
			jf.add(table);			
			jf.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
			jf.setSize(500, 300);			
			jf.setLocationRelativeTo(null);
			jf.setVisible(true);
		} catch (DAOException e) {
			e.printStackTrace();
			throw new DAOException("查询数据失败",e);
		} finally{
			DBUtil.close();
		}
	}
}

要在JTable显示数据库数据,你需要完成以下步骤: 1. 创建数据库连接 首先,你需要创建一个数据库连接,以便从数据库检索数据。可以使用Java的JDBC API来创建连接。例如: ``` // 数据库连接信息 String url = "jdbc:mysql://localhost/mydatabase"; String user = "username"; String password = "password"; // 创建数据库连接 Connection conn = DriverManager.getConnection(url, user, password); ``` 2. 检索数据 接下来,你需要使用SQL查询语句从数据库检索数据。可以使用Java的Statement或PreparedStatement对象来执行查询。例如: ``` // 创建查询语句 String sql = "SELECT * FROM mytable"; // 创建Statement对象 Statement stmt = conn.createStatement(); // 执行查询 ResultSet rs = stmt.executeQuery(sql); ``` 3. 将数据放入JTable 最后,你需要将检索到的数据放入JTable。可以使用Java的DefaultTableModel类来创建一个表模型,然后将数据添加到表模型,最后将表模型设置为JTable的模型。例如: ``` // 创建表模型 DefaultTableModel model = new DefaultTableModel(); // 将列名添加到表模型 model.addColumn("ID"); model.addColumn("Name"); model.addColumn("Age"); // 将数据添加到表模型 while (rs.next()) { Object[] rowData = {rs.getInt("id"), rs.getString("name"), rs.getInt("age")}; model.addRow(rowData); } // 创建JTable并将表模型设置为其模型 JTable table = new JTable(model); ``` 这样,你就可以在JTable显示数据库数据了。注意,你需要在Swing的事件分发线程执行这些操作,以确保它们在正确的线程上运行。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值