【Java】可视化Swing中JTable控件绑定SQL数据源的两种方法
2013-07-31 00:12
549 查看
在 MyEclipse 的可视化 Swing 中,有 JTable 控件。
JTable 用来显示和编辑常规二维单元表。
那么,如何将 数据库SQL中的数据绑定至JTable中呢?
在这里,提供两种方法。
JTable(Object[][] rowData, Object[] columnNames)
构造一个 JTable 来显示二维数组 rowData 中的值,其列名称为 columnNames。
JTable(TableModel dm)
构造一个 JTable,使用数据模型 dm、默认的列模型和默认的选择模型对其进行初始化。
以下,我们就通过这两个构造方法来将JTable绑定到SQL数据库。
二、在可视化Swing中拖拉进来一个Jtable控件。
JTable(Object[][] rowData, Object[] columnNames)
构造一个 JTable 来显示二维数组 rowData 中的值,其列名称为 columnNames。
博文见http://blog.csdn.net/jueblog/article/details/9622159
回顾如下:
现在,我们为了将ResultSet 转化为二维数组,写如下方法:
在Swing所在的Java文件中先实例化UserDAO:
JTable(TableModel dm)
构造一个 JTable,使用数据模型 dm、默认的列模型和默认的选择模型对其进行初始化。
选择Model来自代码。
填写 model 的方法路径:包名.Java文件名.方法名。
为了调用方便,建议将方法设置为静态方法。
方法的写法与上面的大同小异,不再赘述。
JTable 用来显示和编辑常规二维单元表。
那么,如何将 数据库SQL中的数据绑定至JTable中呢?
在这里,提供两种方法。
JTable的构造方法
通过查阅Java的API,可以可以得到JTable的两个重要的构造方法:JTable(Object[][] rowData, Object[] columnNames)
构造一个 JTable 来显示二维数组 rowData 中的值,其列名称为 columnNames。
JTable(TableModel dm)
构造一个 JTable,使用数据模型 dm、默认的列模型和默认的选择模型对其进行初始化。
以下,我们就通过这两个构造方法来将JTable绑定到SQL数据库。
必要的准备工作
一、有一个可供绑定的数据库。二、在可视化Swing中拖拉进来一个Jtable控件。
方法一:通过二维数组绑定
该方法用到的构造方法为:JTable(Object[][] rowData, Object[] columnNames)
构造一个 JTable 来显示二维数组 rowData 中的值,其列名称为 columnNames。
构建二维数组rowData
通过上节博文“预编译”的学习,我们已经能够将SQL数据库读取至ResultSet 中。博文见http://blog.csdn.net/jueblog/article/details/9622159
回顾如下:
/** 查询并返回记录集 */ public ResultSet getResultSet(String sql, Object[] objArr){ getConnection(); try { pStatement = connection.prepareStatement(sql, ResultSet.TYPE_SCROLL_INSENSITIVE, ResultSet.CONCUR_READ_ONLY); if(objArr!=null && objArr.length>0) { for (int i = 0; i < objArr.length; i++) { pStatement.setObject(i+1, objArr[i]); } } rSet = pStatement.executeQuery(); //list = resultSetToList(rs); } catch (SQLException e) { e.printStackTrace(); } finally { //close(); } return rSet; }【注】只是与上节博客的方法名不同而已。。
现在,我们为了将ResultSet 转化为二维数组,写如下方法:
/** 把结果集转成Object[][] */ public Object[][] resultSetToObjectArray(ResultSet rs) { Object[][] data = null; try { rs.last(); int rows = rs.getRow(); data = new Object[rows][]; ResultSetMetaData md = rs.getMetaData();//获取记录集的元数据 int columnCount = md.getColumnCount();//列数 rs.first(); int k = 0; while(rs.next()) { System.out.println("i"+k); Object[] row = new Object[columnCount]; for(int i=0; i<columnCount; i++) { row[i] = rs.getObject(i+1).toString(); } data[k] = row; k++; } } catch (Exception e) { } return data; }并将这两个方法存至文件UserDAO.java中。
在Swing所在的Java文件中先实例化UserDAO:
UserDAO userDAO = new UserDAO();即可将SQL数据转化为二维数组:
Object[][] dataObjects = userDAO.resultSetToObjectArray(userDAO.getResultSet( "select id,username,password from t_userr", null));
构建列名称 columnNames
这个比较简单,只需要将列名称写入String数组即可。String[] tableStrings = { "id", "username", "password" };
构建JTable的Model:
jTable1.setModel(new DefaultTableModel(dataObjects, tableStrings));
整体代码视图:
最终JTable效果图:
方法二:通过Model绑定
该方法用到的构造方法为:JTable(TableModel dm)
构造一个 JTable,使用数据模型 dm、默认的列模型和默认的选择模型对其进行初始化。
设置Model路径
进入 JTable 控件的控制面板,点击model。选择Model来自代码。
填写 model 的方法路径:包名.Java文件名.方法名。
为了调用方便,建议将方法设置为静态方法。
写入Model 方法
在刚刚设置的路径下写入Model的方法,注意其返回类型为TableModel。方法的写法与上面的大同小异,不再赘述。
public static TableModel Member() { String[][] playerInfo = new String[80][8]; BaseDAO bDao = new BaseDAO(); String sql = "select id,realName,username,sex,phone,email,vocation,city from jdbctest"; String[] ss = {}; ArrayList<HashMap<Object, Object>> list = bDao.Query(sql, ss); // bDao.AllArray(list); int i = 0, j = 0; for (HashMap<Object, Object> maps : list) { Set<Object> keysObjects = maps.keySet(); for (Object kObject : keysObjects) { playerInfo[i][j] = maps.get(kObject).toString(); j++; } i++; j = 0; } String[] Names = { "id", "username", "sex", "phone","vocation","email","realName", "city" }; DefaultTableModel dModel = new DefaultTableModel(playerInfo, Names); return (TableModel)dModel; }
JTable 效果
相关文章推荐
- Java学习笔记——可视化Swing中JTable控件绑定SQL数据源的两种方法
- 可视化Swing中JTable控件绑定SQL数据源的两种方法深入解析
- [网络收集]ASP.NET两种办法给DropDownList绑定SqlDataReader 及在gridview等控件中绑定dropdownlist的简单方法
- Java Swing 在 JTable 中给 JCheckbox 绑定事件的方法
- DropDownList控件绑定数据源的三种方法
- WinForm控件复杂数据绑定常用数据源(如:Dictionary)(对Combobox,DataGridView等控件DataSource赋值的多种方法)
- JTable是Swing编程中很常用的控件,这里总结了一些常用方法以备查阅.
- invalid bound statement (not found),大概应该是报mapper.xml中的sql查询和mapper.java中的方法没有绑定成功!
- java swing JTable绑定值
- ASP.NET dropdownlist绑定数据源两种方法
- 介绍ireport两种获取数据源的方法,javabean和sql
- java swing sql->jtable表格 查询
- WinForm控件复杂数据绑定常用数据源(如:Dictionary)(对Combobox,DataGridView等控件DataSource赋值的多种方法)
- WinForm控件复杂数据绑定常用数据源(对Combobox,DataGridView等控件DataSource赋值的多种方法)
- asp.net Xml绑定到数据控件的两种简单方法
- Repeater控件绑定SqlDataReader数据源
- java 执行sql的两种方法
- DataGridView控件与数据源绑定方法
- JTable是Swing编程中很常用的控件,这里总结了一些常用方法以备查阅.
- ASP.NET(2):在Init方法中进行控件数据源的绑定