Java——JTable表格组件的使用(将数据库的数据展现在窗口)

┏(ω)=☞ 本专栏的目录(为您提供更好的查询方式)(点这里说不定有你想要的)

setRowHeight(50);//设置表格高度

准备好数据库表和数据

在这里插入图片描述
在这里插入图片描述

database类


public class database {
	private int id;//编号
	private String name;//姓名
	
	public int getId() {
		return id;
	}
	public void setId(int id) {
		this.id = id;
	}
	public String getName() {
		return name;
	}
	public void setName(String name) {
		this.name = name;
	}
}


代码实现(cs类)

import java.awt.event.*;
import java.sql.*;
import java.util.*;

import javax.swing.*;

public class cs {
	public static database d = new database();// 创建一个数据库对象,该类里有你要存入数据库的属性
	public static final String DRIVER = "com.mysql.jdbc.Driver";// 这个固定不变

	public static final String URL = "jdbc:mysql://localhost:3306/cc?useSSL=false&&characterEncoding=UTF-8";// "cc"是指连接的数据库名,"localhost"是指主机地址,"3306"默认端口

	public static final String USER = "root";// 当前电脑mysql账号

	public static final String PASSWORD = "12345678";// 当前电脑mysql密码
	private JTextField JT;
	public static Connection con = null;
	public static PreparedStatement pstmt = null;

	public static void main(String[] args) {

		JFrame JF = new JFrame();//创建窗口
		JF.setDefaultCloseOperation(3);// 设置关闭模式
		JF.setSize(500, 500);// 设置窗口大小
		JF.setLocationRelativeTo(null);// 设置窗口居中

		try {
			Class.forName(DRIVER);// 加载驱动
			con = DriverManager.getConnection(URL, USER, PASSWORD);
			System.out.println("连接成功");
		} catch (Exception ee) {
			ee.printStackTrace();// 打印异常信息的位置
		}

		cs e = new cs();//创建当前类
		List<database> list = e.aaa();//调用当前类对象并把数据存入database类中
		String s[][] = new String[5][5];//创建二维数组储存数据
		for (int i = 0; i < s.length; i++) {
			database ee = list.get(i);//把集合中的数据存入database
			for (int j = 0; j < s.length; j++) {
				if (j % 2 == 0) {
					s[i][j] = ee.getId() + "";//从database类属性中获取数据放入二维数组中
				} else {
					s[i][j] = ee.getName();//从database类属性中获取数据放入二维数组中
				}
			}
		}
		String ss[] = { "编号", "名字" };//表格的第一行文字
		JTable JT = new JTable(s, ss);//创建表格,第一个参数为显示的数据(数组),第二个数组是表格的第一行文字
		//VERTICAL_SCROLLBAR_AS_NEEDED纵向,HORIZONTAL_SCROLLBAR_AS_NEEDED横向
		JScrollPane JS = new JScrollPane(JT, JScrollPane.VERTICAL_SCROLLBAR_AS_NEEDED,
				JScrollPane.HORIZONTAL_SCROLLBAR_AS_NEEDED);

		JF.setVisible(true);// 显示窗口
		JF.add(JS);//将滚动条加入窗口
		new cs();// 调用方法

	}

	public List<database> aaa() {
		List<database> list = new ArrayList();//创建集合,用于存查询到的数据
		String sql = "select *from kk";//查询的sql语句
		try {
			pstmt = con.prepareStatement(sql);
			ResultSet rst = pstmt.executeQuery();
			while (rst.next()) {
				int id = rst.getInt("id");
				String name = rst.getString("name");
				database ui = new database();
				ui.setId(id);
				ui.setName(name);
				list.add(ui);//将数据加入集合中
			}
		} catch (SQLException e) {
			e.printStackTrace();
		}
		return list;
	}
}

运行结果图

在这里插入图片描述

  • 13
    点赞
  • 132
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
好的,我可以为您解答关于Java窗口小程序显示SQL数据库中多行数据的问题。 首先,您需要使用Java连接到SQL数据库。您可以使用Java的JDBC API来连接到SQL数据库。以下是一个简单的连接代码示例: ```java try { // 加载数据库驱动 Class.forName("com.mysql.jdbc.Driver"); // 连接数据库,这里使用MySQL数据库举例 String url = "jdbc:mysql://localhost:3306/mydatabase"; String user = "root"; String password = "mypassword"; Connection conn = DriverManager.getConnection(url, user, password); // 执行SQL查询 Statement stmt = conn.createStatement(); ResultSet rs = stmt.executeQuery("SELECT * FROM mytable"); // 遍历查询结果 while (rs.next()) { // 获取每一行数据的列值 int id = rs.getInt("id"); String name = rs.getString("name"); int age = rs.getInt("age"); System.out.println("id: " + id + ", name: " + name + ", age: " + age); } // 关闭连接 rs.close(); stmt.close(); conn.close(); } catch (Exception e) { e.printStackTrace(); } ``` 以上代码演示了如何连接到MySQL数据库,并执行一条查询语句。在查询结果中,我们使用`ResultSet`对象的`next()`方法遍历每一行数据,并获取每一行数据的列值。 接下来,您需要将查询结果显示在Java窗口中。您可以使用Swing或JavaFX等Java GUI框架来创建Java窗口。以下是一个使用Swing框架创建Java窗口,显示SQL查询结果的简单示例代码: ```java import javax.swing.*; import java.awt.*; import java.sql.*; public class MyWindow extends JFrame { private JTable table; public MyWindow() { super("SQL数据表"); try { // 加载数据库驱动 Class.forName("com.mysql.jdbc.Driver"); // 连接数据库,这里使用MySQL数据库举例 String url = "jdbc:mysql://localhost:3306/mydatabase"; String user = "root"; String password = "mypassword"; Connection conn = DriverManager.getConnection(url, user, password); // 执行SQL查询 Statement stmt = conn.createStatement(); ResultSet rs = stmt.executeQuery("SELECT * FROM mytable"); // 将查询结果装载到JTable中 table = new JTable(buildTableModel(rs)); JScrollPane scrollPane = new JScrollPane(table); getContentPane().add(scrollPane, BorderLayout.CENTER); // 关闭连接 rs.close(); stmt.close(); conn.close(); } catch (Exception e) { e.printStackTrace(); } setSize(400, 300); setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); setVisible(true); } public static void main(String[] args) { new MyWindow(); } // 将ResultSet装载到TableModel中 public static TableModel buildTableModel(ResultSet rs) throws SQLException { ResultSetMetaData metaData = rs.getMetaData(); // 获取列数 int columnCount = metaData.getColumnCount(); // 获取列名 String[] columnNames = new String[columnCount]; for (int column = 1; column <= columnCount; column++) { columnNames[column - 1] = metaData.getColumnName(column); } // 将结果集转换为表格模型 DefaultTableModel tableModel = new DefaultTableModel(columnNames, 0); while (rs.next()) { Object[] rowData = new Object[columnCount]; for (int column = 1; column <= columnCount; column++) { rowData[column - 1] = rs.getObject(column); } tableModel.addRow(rowData); } return tableModel; } } ``` 以上代码演示了如何将查询结果装载到`JTable`中,并显示在Java窗口中。在`buildTableModel()`方法中,我们使用`ResultSetMetaData`对象获取每一列的列名,并将查询结果装载到`DefaultTableModel`中。 希望以上内容能够帮助到您。如果您有任何问题,请随时问我。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

桂?

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值