JavaSwing读数据库表格到窗口面板

  • JDBC
package JDBC;

import java.sql.*;
import java.util.ArrayList;
import java.util.List;

public class Demo05 {
    public Object[][]  table() {
        Object[][] data = new String[20][3];
        Connection conn = null;
        PreparedStatement st = null;
        ResultSet rs = null;
        try {
            conn = JdbcUtils.getConnection();

            String sql = "SELECT NAME, id, pass FROM `users` WHERE TYPE = ?";//编写sql
            st = conn.prepareStatement(sql);//预编译
            st.setString(1,"2");
            rs = st.executeQuery();//执行
            for (int i=0; rs.next(); i++){
                data[i][0] = rs.getString("name");
                data[i][1] = rs.getString("id");
                data[i][2] = rs.getString("pass");
            }
            return data;
        } catch (SQLException throwables) {
            throwables.printStackTrace();
        }finally {
            JdbcUtils.release(conn, st, rs);
        }
        return data;
    }
    }
}
  • 放入面板
package UI;

import JDBC.Demo05;
import JDBC.Person;

import javax.swing.*;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

public class UI14 {
    public void showUI(){
        JFrame jFrame  = new JFrame("管理考生");
        jFrame.setSize(1000,800);//大小
        jFrame.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
        jFrame.setLocationRelativeTo(null);//居中
        jFrame.setResizable(false);
        //创建面板
        JPanel panel = new JPanel();
        //表格
        Object[] columnNames = {"姓名","账号","密码"};//表头
        Object[][] data = new Demo05().table();//JDBC获取表内容
        JTable table = new JTable(data, columnNames);//表头和内容放入表
        table.setRowHeight(40);//设置行高
        table.setPreferredScrollableViewportSize(new Dimension(950,650));//整张表的大小
        JScrollPane scrollPane = new JScrollPane(table);//给表整一个滑轮
        panel.add(scrollPane);//把表放入面板
        //组件
        JButton button = new JButton("[返回]");
        //添加
        panel.add(button);
        //事件
        button.addActionListener(new ActionListener() {
            @Override
            public void actionPerformed(ActionEvent e) {
                new UI12().showUI(Person.name, Person.myid);
                jFrame.dispose();
            }
        });
        //显示
        jFrame.setContentPane(panel);
        jFrame.setVisible(true);
    }
}
  • 下面是废话

读取数据库数据时, 我数据库只有3条, 但是我建了个行数为20的二维数组, 要万一数据库数据大于21怎么办? 不知道, 懒, 那就建一个行数为100000的二维数组, 或者复杂点, 获取一下数据库行数, 再建数组, 不过太麻烦, 那就建一个大数组吧

只能查看学生信息, 怎么点进去看学生的考试记录, 不知道

我的表字段都是字符串类型, 省事

这里明明预编译没啥用了, 还用预编译, 因为之前调太多一直错一直错, 为了避免再出错, 所以用预编译糊弄. 还要数据读取到二维数组, 我这里数组可以用String了, 但是用的是Object, 是因为之前调太多次了一直错一直错一直错, 错误点太多了, 是其他的错误呢, 还是错在了二维数组的类型呢, 不想控制变量找了, 干脆管是不是类型的错, 直接改成大类型


  • sqlyog
    在这里插入图片描述

javaswing
在这里插入图片描述

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值