java swing中建立表格与数据库数据对应显示开发

阿良良木月火 2021-08-22 15:52:02

求大神帮我看看为啥List中的数据是空的,一直在为集合中的数据怎么取出烦恼。。。

 

package com.ck;

import com.mr.contact.swing.*;
import com.mysql.user.User;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.ArrayList;
import java.util.List;
import com.mr.test.userTest;

import javax.swing.table.DefaultTableModel;

public class MainFrame extends ContactFrame {
    private FixedTable table;
    private DefaultTableModel tableModel;
    List<User> list = new ArrayList<User>();
    
    public MainFrame() {
        setTitle("客户端程序");
        init();
        validate();
    }
    protected List<User> getUser() {
        try {
            Class.forName("com.mysql.jdbc.Driver");
            String url = "jdbc:mysql://localhost:3306/test01";
            String name = "root";
            String password = "123456";
            Connection con = DriverManager.getConnection(url,name,password);
            Statement stmt = con.createStatement();
            String sql = "select * from user";
            ResultSet rs = stmt.executeQuery(sql);            
            while(rs.next()) {
                User user = new User();
                user.setId(rs.getInt("id"));
                user.setName(rs.getString("name"));
                user.setSex(rs.getString("sex"));        
                list.add(user);                
            }
            rs.close();
            stmt.close();
            con.close();
            }catch(ClassNotFoundException e) {
                e.printStackTrace();
            }catch(SQLException e) {
                e.printStackTrace();
            }
        return list;
    }    
    
    protected void init() {
        super.init();
        table = getTable();
        table.setCellEditable(false);
        initTable();
    }
    private void initTable() {
        // TODO 自动生成的方法存根
        tableModel = getUsableModleSoure();
        table.setModel(tableModel);
    }
    private DefaultTableModel getUsableModleSoure(){
        // TODO 自动生成的方法存根
        return assembledModleSource(list);
    }
    private DefaultTableModel assembledModleSource(List<User> list) {
        // TODO 自动生成的方法存根
        int userCount = list.size();
        String[] userNames = {"id" + "name" + "sex"};
        String[][] tableValues = new String[userCount][3];
        for(int i = 0;i<userCount;i++) {
            User user = list.get(i);
            tableValues[i][0] = "" + user.getId();
            tableValues[i][1] = user.getName();
            tableValues[i][2] = user.getSex();
        }
        DefaultTableModel tmp = new DefaultTableModel(tableValues,userNames);
        return tmp;
    }
    public static void main(String[] args) {
        new MainFrame();
    }

}
 

...全文
402 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
=PNZ=BeijingL 2021-08-23
  • 打赏
  • 举报
回复

 private DefaultTableModel getUsableModleSoure(){
        // TODO 自动生成的方法存根
        list=getUser();
        return assembledModleSource(list);
    }
=PNZ=BeijingL 2021-08-23
  • 打赏
  • 举报
回复

没有地方调用getUser() 方法

阿良良木月火 2021-08-23
  • 举报
回复
@=PNZ=BeijingL 好像是啊,这样有没有办法在其他方法中调用?
阿良良木月火 2021-08-22
  • 打赏
  • 举报
回复

我觉得还是List集合取出的方式不对,控制台打印的出来的是内存地址,请告诉我怎么打印数据库数据

51,407

社区成员

发帖
与我相关
我的任务
社区描述
Java相关技术讨论
javaspring bootspring cloud 技术论坛(原bbs)
社区管理员
  • Java相关社区
  • 小虚竹
  • 谙忆
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧