我试图将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());
}
我已经使用了vectors,现在我不知道如何为我的表jtable1.mysql表及其描述定义一个模型
感谢您的帮助。
3条答案
按热度按时间dkqlctbz1#
我认为,如果您正在学习使用swing和数据库进行java编程,这里有两个想法:
试着分阶段申请。
从gui部分的代码开始,只使用一些虚拟数据(不是数据库数据;您尚未连接到数据库)。
此时,您可以显示一个窗口(a
JFrame
)和一个JTable
其中包含一些虚拟数据(例如,在程序中创建的)。现在,编写应用程序的数据库方面的代码。
从数据库表中获取数据,并验证是否能够读取数据并将其打印到ide中的控制台。
一旦成功,替换
JTable
的虚拟数据与数据库数据。你应该让应用程序显示一个带有
JTable
并查询其中的数据库数据。以下是要构建的链接
JTable
在oracle的java教程中使用swing gui。u1ehiz5o2#
您需要为tablemodel指定列名。现在,您刚刚定义了一个空向量,因此表认为有0列,因此没有任何可显示的内容。
您可以从resultsetmetadata获取列名:
8wigbo563#
我可以提供一些改进代码的建议:
不要在方法作用域中创建数据库连接。使用池来管理它们,并将连接传递到需要它的对象中。
使sql成为静态字符串。
那个存储过程在为您做什么?简单、普通的sql应该足以查询一个表。
您应该知道存储过程返回了什么。为什么使用resultsetmetadata?
根据camickr的建议,继续使用你正在使用的向量b/c。
不关闭方法范围中的任何资源。
不要将异常消息打印到控制台。记录整个堆栈跟踪;它将有更多的信息比单纯的信息。