一、先写个查询数据库的方法从数据库获取数据
查询后,返回一个List集合
/**
* 查询方法
* @return
*/
public List<PhoneBook> selectData() {
Connection conn = null;
PreparedStatement ps = null;
ResultSet rs = null;
List<PhoneBook> pblist = new ArrayList<PhoneBook>();
try {
String sql = \"SELECT * FROM p_table;\";
conn = DBconection.getConnection();
ps = conn.prepareStatement(sql);
rs = ps.executeQuery();
while(rs.next()) {
PhoneBook phonebook = new PhoneBook();
phonebook.setName(rs.getString(\"name\"));
phonebook.setTel(rs.getString(\"tel\"));
phonebook.setNote(rs.getString(\"note\"));
pblist.add(phonebook);
}
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}finally {
try {
DBconection.coles(null, ps, conn);
} catch (Exception e2) {
// TODO: handle exception
}
}
return pblist;
}
二、因为JTable是二维数据的形式,所以要将刚才返回的List集合转变为二维数组
转变完成后返回一个二维数组
/**
* 将List集合转变为二维数组
* @param pblist 查询后返回的List集合
* @return
*/
public Object[][] list2Array(List<PhoneBook> pblist){
// List<PhoneBook> pblist = new ArrayList<PhoneBook>(); 不会传参
Object[][] arrs = new Object[pblist.size()][];
for(int i = 0;i<pblist.size();i++) {
PhoneBook pb = pblist.get(i);
arrs[i] = new Object[3];
arrs[i][0] = pb.getName();
arrs[i][1] = pb.getTel();
arrs[i][2] = pb.getNote();
}
return arrs;
}
三、直接将返回的二维数组赋值即可
public void showTable() {
JPanel jp2 = new JPanel();
String[] titles = {\"姓名\",\"电话\",\"备注\"};
//实例化对象
PhoneAccess pa = new PhoneAccess();
//调用已经转好的二维数组
Object[][] date = pa.list2Array(pa.selectData());
table = new JTable(date,titles);
table.setEnabled(false); //设置表格不可编辑
JScrollPane jsp = new JScrollPane(table,JScrollPane.VERTICAL_SCROLLBAR_AS_NEEDED,JScrollPane.HORIZONTAL_SCROLLBAR_AS_NEEDED);
jsp.setBounds(0, 30, 450, 200);
jp2.add(jsp);
jp2.setBounds(0, 30, 450, 200);
jp2.setLayout(null);
this.add(jp2);
}
以上是《Java怎么把数据库的数据搬到JTable?》文章的全部内容,感谢你的支持!
以上就是《Java怎么把数据库的数据搬到JTable?》文章的全部内容了!