请问JList怎样显示数据库的数据问题?
请问下各位eclipse中的Jlist怎样显示数据库里面的数据啊?比如我要显示user表中的name项(列)的值,请问怎样做呢?希望各位能提供下代码,谢谢!...
请问下各位eclipse中的Jlist怎样显示数据库里面的数据啊?比如我要显示user表中的name项(列)的值,请问怎样做呢?希望各位能提供下代码,谢谢!
展开
2个回答
展开全部
用jdbc把数据库里面数据查询出来,一种是通过迭代ResultSet逐一将元素添加到object数组中,最后调用jlist.setListData(object[])就可以了。
另一种,用Spring中的JdbcTemplate.query("select name from user")方法直接返回一个List,其中每个元素是一个name的值。
以前者为例,以mySql数据库为例子
public void test(){
try {
Class.forName("com.mysql.jdbc.Driver");
} catch (ClassNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
Connection conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/test?user=admin&password=");
PreparedStatement ps = conn.prepareStatement("select name from user");
ResultSet rs = ps.executeQuery();
List list = new ArrayList();
while(rs.next()){
list.add(rs.getString(1));
}
jList.setListData(list.toArray(new Object[0]));
}
非完整代码,只是主体思想
另一种,用Spring中的JdbcTemplate.query("select name from user")方法直接返回一个List,其中每个元素是一个name的值。
以前者为例,以mySql数据库为例子
public void test(){
try {
Class.forName("com.mysql.jdbc.Driver");
} catch (ClassNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
Connection conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/test?user=admin&password=");
PreparedStatement ps = conn.prepareStatement("select name from user");
ResultSet rs = ps.executeQuery();
List list = new ArrayList();
while(rs.next()){
list.add(rs.getString(1));
}
jList.setListData(list.toArray(new Object[0]));
}
非完整代码,只是主体思想
展开全部
import javax.swing.AbstractListModel;
import javax.swing.DefaultListModel;
import javax.swing.JFrame;
import javax.swing.JList;
import javax.swing.JScrollPane;
public class vivan19781111 {
public vivan19781111(){
JFrame f=new JFrame();
DefaultListModel listModel=new DefaultListModel();
JList resultList=new JList(listModel);
resultList.setVisibleRowCount(5);
f.add(new JScrollPane(resultList));
f.pack();
f.setVisible(true);
f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
listModel.addElement( "运行中,请等待... ");
try{
Thread.sleep(1000);
listModel.remove(0);
listModel.addElement( "执行完毕. ");
Thread.sleep(500);
resultList.setModel(new ListModelDate());
}catch(Exception e){
e.printStackTrace();
}
}
private static class ListModelDate extends AbstractListModel{
public int getSize(){
return 10;
}
public Object getElementAt(int n){
return new Integer(n);
}
}
public static void main(String[] args) {
new vivan19781111();
}
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询