JAVA+SQL SERVER 推箱子小游戏

day3 数据库显示3

由于游戏有排行榜功能,即需要将数据库存储数据展示出来,要做排序的话请在数据库中自行操作~

package db;

import java.awt.BorderLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.WindowEvent;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.ResultSetMetaData;
import java.util.Vector;

import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JTable;
import javax.swing.ListSelectionModel;
import javax.swing.table.DefaultTableModel;

import game.InputId;
import game.Screen;

public class Rank extends JFrame{
	// 声明滚动面板
	public JScrollPane spTable;
	// 声明一个盛放按钮的面板
	public JPanel pButtons;
	public JButton btnFlush;
	// 声明默认表格模式
	public DefaultTableModel model;
	// 声明表格
	public JTable table;
	public Rank() {
		// 创建默认表格模式
		model = new DefaultTableModel();
		// 创建表格
		table = new JTable(model);
		// 设置表格选择模式为单一选择
		table.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
		// 创建一个滚动面板,包含表格
		spTable = new JScrollPane(table);
		// 将滚动面板添加到窗体中央
		this.add(spTable, BorderLayout.CENTER);
		//创建按钮
		btnFlush = new JButton("刷新");
		// 创建面板
		pButtons = new JPanel();
		// 将按钮添加到面板中
		pButtons.add(btnFlush);
		// 将盛放按钮的面板添加到窗体的南部(下面)
		this.add(pButtons, BorderLayout.SOUTH);
		btnFlush.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent e) {
				// 调用显示数据的方法
				showData();
			}
		});
		// 初始化显示表格数据
		this.showData();
		this.setSize(300,200);
        this.setTitle("排行榜");
        this.setVisible(true);
        this.setLocationRelativeTo(null);
	}
	private void showData() {
		// 展示rank表
		String sql = "select * from adie.dbo._rank";
		// 数据库访问
		try {
			Connection con = DBUtil.getConnection();
			PreparedStatement pstmt;
			ResultSet rs;
			pstmt = con.prepareStatement(sql);
			rs = pstmt.executeQuery();// 执行SQL语句
			
			ResultSetMetaData rsmd = rs.getMetaData();

			// 获取列数
			int colCount = rsmd.getColumnCount();
			// 存放列名
			Vector<String> title = new Vector<String>();
			// 列名
			for (int i = 1; i <= colCount; i++) {
				title.add(rsmd.getColumnLabel(i));
			}
			// 表格数据
			Vector<Vector<String>> data = new Vector<Vector<String>>();
			int rowCount = 0;
			while (rs.next()) {//处理结果集
				rowCount++;
				// 行数据
				Vector<String> rowdata = new Vector<String>();
				for (int i = 1; i <= colCount; i++) {
					rowdata.add(rs.getString(i));
				}
				data.add(rowdata);
			}
			if (rowCount == 0) {
				model.setDataVector(null, title);
			} else {
				model.setDataVector(data, title);
			}
			//关闭,释放资源
			rs.close();
			pstmt.close();
			con.close();
		} catch (Exception ee) {
			System.out.println(ee.toString());
			JOptionPane.showMessageDialog(this, "系统出现异常错误。请检查数据库。系统即将退出!!!",
					"错误", 0);
		}
	}
}

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值