51,407
社区成员
发帖
与我相关
我的任务
分享求大神帮我看看为啥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();
}
}
private DefaultTableModel getUsableModleSoure(){
// TODO 自动生成的方法存根
list=getUser();
return assembledModleSource(list);
}
没有地方调用getUser() 方法
我觉得还是List集合取出的方式不对,控制台打印的出来的是内存地址,请告诉我怎么打印数据库数据