我试图将MySQL表链接到我的Java项目,并且想在我的Java框架上往复移动MySQL表。到目前为止,我已经编写了这段代码。
try{
Class.forName(cn);
Connection con = (Connection) DriverManager.getConnection(url, u, p);
Statement stmt = (Statement) con.createStatement();
String q = "select eno,name,salary,dept,(salary*12) as spa from employee;";
ResultSet rs = stmt.executeQuery(q);
ResultSetMetaData rsmd = rs.getMetaData();
int cc=rsmd.getColumnCount();
Vector columns = new Vector(cc);
Vector data = new Vector();
Vector row;
while(rs.next()) {
row=new Vector(cc);
for (int i = 1; i <= cc; i++) {
row.add(rs.getString(i));
}
data.add(row);
}
JTable table=new JTable(data,columns);
DefaultTableModel m = new DefaultTableModel(data, columns);
jTable1.setModel(m);
} catch (Exception e){
System.out.println(e.getMessage());
}
我曾经使用过向量,但现在无法确定如何为表'jTable1'定义模型。MySQL table and its description
感谢您的帮助。
答案 0 :(得分:1)
我想,如果您正在学习使用Swing和Java进行Java编程,这里有一些想法:
JFrame
)和其中包含一些伪数据(例如,在程序中创建)的JTable
。JTable
的伪数据。JTable
的窗口,并在其中查询数据库数据。此处是使用Oracle's Java tutorials上的Swing GUI构建JTable
的链接。
答案 1 :(得分:0)
我可以提供一些建议来改善您的代码:
答案 2 :(得分:0)
您需要为TableModel指定列名。现在,您刚刚定义了一个空的Vector,因此表格认为有0列,因此没有任何显示。
您可以从ResultSetMetaData获取列名:
String sql = "Select * from ???";
Statement stmt = connection.createStatement();
ResultSet rs = stmt.executeQuery( sql );
ResultSetMetaData md = rs.getMetaData();
int columns = md.getColumnCount();
// Get column names
Vector<Object> columnNames = new Vector<Object>();
for (int i = 1; i <= columns; i++)
{
columnNames.addElement( md.getColumnLabel(i) );
}