疯疯的奇幻冒险 发表于 2023-2-24 20:12:10

救命,小组作业一个人当牛马,java和MySQL做宿舍管理,不知道怎么显示数据库的表

package 课程设计;

import java.awt.*;
import java.sql.*;
import java.util.Vector;
import java.awt.event.*;
import javax.swing.*;
import javax.swing.table.DefaultTableCellRenderer;

import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

public class Stuck {
Vector<Object> columnNames;
       
        private Vector<Vector<Object>> rowData = new Vector<Vector<Object>>();
        static JTable table1=null;
        //定义数据库需要的全局变量
        PreparedStatement ps=null;
        Connection ct=null;
        ResultSet rs=null;//将对数据库查询的结果保存进resultset的对象rs中
       
        public Stuck(){
                columnNames=new Vector<Object>();
                //设置列名
                columnNames.add("姓名");
                columnNames.add("性别");
                columnNames.add("学号");
                columnNames.add("宿舍号");
                columnNames.add("床位");
                columnNames.add("学院");
                columnNames.add("身份");
                columnNames.add("状态");
                //rowData可以存放多行,开始从数据库里取
               
                try {       
                        String userMySql="root";
                        String passwordMySql="123456";
                                //加载驱动
                                Class.forName("com.mysql.cj.jdbc.Driver");
                                //得到连接,并获取连接对象ct
                                ct= DriverManager.getConnection("jdbc:mysql://localhost:3306/stu-sushe",userMySql,passwordMySql);
                               
                                ps=ct.prepareStatement("select * from student");//向mysql发送动态的sql语句
                               
                                rs=ps.executeQuery();//使用select语句时用executeQuery执行,executeupdate用于执行insert,update,delete,execute用于返回多个结果集的语句。
                               
                                while(rs.next()){
                                        //rowData可以存放多行
                                        Vector<Object> hang=new Vector<Object>();
                                        hang.add(rs.getString(1));
                                        hang.add(rs.getString(2));
                                        hang.add(rs.getString(3));
                                        hang.add(rs.getString(4));
                                        hang.add(rs.getString(5));
                                        hang.add(rs.getString(6));
                                        hang.add(rs.getString(7));
                                        hang.add(rs.getInt(8));
                                        //加入到rowData
                                        rowData.add(hang);
                                }
                        } catch (Exception e) {
                                e.printStackTrace();
                                //System.out.println(e.getMessage());
                        } finally{
                               
                                        try {
                                                if(rs!=null){
                                                rs.close();
                                                }
                                                if(ps!=null){
                                                        ps.close();
                                                }
                                                if(ct!=null){
                                                        ct.close();
                                                }
                                        } catch (SQLException e) {
                                                e.printStackTrace();
                                        }
                        }

        table1=new JTable(rowData,columnNames) {
                private static final long serialVersionUID=-3229560868878458304L;
                public boolean isCellEditable(int row,int column) {
                        return false;
                }
        };
    table1.getSelectionModel().setSelectionMode(ListSelectionModel.SINGLE_SELECTION);//只允许选中一行
    DefaultTableCellRenderer tcr = new DefaultTableCellRenderer();// 设置table内容居中
    tcr.setHorizontalAlignment(JLabel.CENTER);// 这句和上句作用一样
    table1.setDefaultRenderer(Object.class, tcr);
   
}
       
        }

疯疯的奇幻冒险 发表于 2023-2-24 20:13:26

csdn翻烂了,登录界面进去之后不知道怎么显示数据,执行也不报错,数据库连接也没有问题

疯疯的奇幻冒险 发表于 2023-2-24 20:15:03

又一次纯纯感受到这B学都是自己自学

sfqxx 发表于 2023-5-14 17:50:22

根据您提供的代码,可以看出这是一个Java程序,并且使用了MySQL数据库。在这个程序中,它首先通过PreparedStatement发送动态的SQL语句到MySQL,并且使用executeQuery()方法来获得ResultSet对象,接着将ResultSet对象里面的数据逐行存入rowData向量。最后,利用rowData和columnNames向量创建JTable表格。

因此,要显示MySQL表格,需要保证以下条件:
1. 使用正确的用户名和密码连接MySQL;
2. 使用合适的SQL语句查询MySQL表格;
3. 确保MySQL表格的列数量和类型与定义的rowData和columnNames向量一致;

如需进一步帮助,请提供更多详细信息或代码片段。
页: [1]
查看完整版本: 救命,小组作业一个人当牛马,java和MySQL做宿舍管理,不知道怎么显示数据库的表