代码语言
.
CSharp
.
JS
Java
Asp.Net
C
MSSQL
PHP
Css
PLSQL
Python
Shell
EBS
ASP
Perl
ObjC
VB.Net
VBS
MYSQL
GO
Delphi
AS
DB2
Domino
Rails
ActionScript
Scala
代码分类
文件
系统
字符串
数据库
网络相关
图形/GUI
多媒体
算法
游戏
Jquery
Extjs
Android
HTML5
菜单
网页交互
WinForm
控件
企业应用
安全与加密
脚本/批处理
开放平台
其它
【
Java
】
创建一个JDBC表格模型
作者:
DDT
/ 发布于
2012/6/12
/
484
创建一个JDBC表格模型
import javax.swing.*; import javax.swing.table.*; import java.sql.*; import java.util.*; /** an immutable table model built from getting metadata about a table in a jdbc database */ public class JDBCTableModel extends AbstractTableModel { Object[][] contents; String[] columnNames; Class[] columnClasses;</div> <div>public JDBCTableModel (Connection conn, String tableName) throws SQLException { super(); getTableContents (conn, tableName);</div> <div>} protected void getTableContents (Connection conn, String tableName) throws SQLException {</div> <div>// get metadata: what columns exist and what // types (classes) are they? DatabaseMetaData meta = conn.getMetaData(); System.out.println ("got meta = " + meta); ResultSet results = meta.getColumns (null, null, tableName, null) ; System.out.println ("got column results"); ArrayList colNamesList = new ArrayList(); ArrayList colClassesList = new ArrayList(); while (results.next()) { colNamesList.add (results.getString ("COLUMN_NAME")); System.out.println ("name: " + results.getString ("COLUMN_NAME")); int dbType = results.getInt ("DATA_TYPE"); switch (dbType) { case Types.INTEGER: colClassesList.add (Integer.class); break; case Types.FLOAT: colClassesList.add (Float.class); break; case Types.DOUBLE: case Types.REAL: colClassesList.add (Double.class); break; case Types.DATE: case Types.TIME: case Types.TIMESTAMP: colClassesList.add (java.sql.Date.class); break; default: colClassesList.add (String.class); break; }; System.out.println ("type: " + results.getInt ("DATA_TYPE")); } columnNames = new String [colNamesList.size()]; colNamesList.toArray (columnNames); columnClasses = new Class [colClassesList.size()]; colClassesList.toArray (columnClasses); // get all data from table and put into // contents array</div> <div>Statement statement = conn.createStatement (); results = statement.executeQuery ("SELECT * FROM " + tableName); ArrayList rowList = new ArrayList(); while (results.next()) { ArrayList cellList = new ArrayList(); for (int i = 0; i<columnClasses.length; i++) { Object cellValue = null;</div> <div> if (columnClasses[i] == String.class) cellValue = results.getString (columnNames[i]); else if (columnClasses[i] == Integer.class) cellValue = new Integer ( results.getInt (columnNames[i])); else if (columnClasses[i] == Float.class) cellValue = new Float ( results.getInt (columnNames[i])); else if (columnClasses[i] == Double.class) cellValue = new Double ( results.getDouble (columnNames[i])); else if (columnClasses[i] == java.sql.Date.class) cellValue = results.getDate (columnNames[i]); else System.out.println ("Can't assign " + columnNames[i]); cellList.add (cellValue); }// for Object[] cells = cellList.toArray(); rowList.add (cells); } // while // finally create contents two-dim array contents = new Object[rowList.size()] []; for (int i=0; i<contents.length; i++)</div> <div>contents[i] = (Object []) rowList.get (i); System.out.println ("Created model with " + contents.length + " rows");</div> <div>// close stuff results.close(); statement.close();</div> <div>} // AbstractTableModel methods public int getRowCount() { return contents.length; } <div>public int getColumnCount() { if (contents.length == 0) return 0; else return contents[0].length; } <div>public Object getValueAt (int row, int column) { return contents [row][column]; } <div>// overrides methods for which AbstractTableModel // has trivial implementations</div> <div>public Class getColumnClass (int col) { return columnClasses [col]; } <div>public String getColumnName (int col) { return columnNames [col]; } } </div>
试试其它关键字
JDBC表格模型
同语言下
.
List 切割成几份 工具类
.
一行一行读取txt的内容
.
Java PDF转换成图片并输出给前台展示
.
java 多线程框架
.
double类型如果小数点后为零则显示整数否则保留两位小
.
将图片转换为Base64字符串公共类抽取
.
sqlParser 处理SQL(增删改查) 替换schema 用于多租户
.
JAVA 月份中的第几周处理 1-7属于第一周 依次类推 29-
.
java计算两个经纬度之间的距离
.
输入时间参数计算年龄
可能有用的
.
实现测量程序运行时间及cpu使用时间
.
C#实现的html内容截取
.
List 切割成几份 工具类
.
SQL查询 多列合并成一行用逗号隔开
.
一行一行读取txt的内容
.
C#动态修改文件夹名称(FSO实现,不移动文件)
.
c# 移动文件或文件夹
.
c#图片添加水印
.
Java PDF转换成图片并输出给前台展示
.
网站后台修改图片尺寸代码
DDT
贡献的其它代码
(
160
)
.
Oracle统计表的数据行和数据块信息
.
html标签闭合检测与修复
.
Powershell日期计算
.
Powershell的Base64编解码
.
Powershell并行循环
.
Powershell目录中搜索文本
.
Powershell枚举远程机器上的本地权限组
.
VBScript解析csv文件
.
快速排序之Powershell
.
批处理输出格式化时间字符串
Copyright © 2004 - 2024 dezai.cn. All Rights Reserved
站长博客
粤ICP备13059550号-3