我有一个名为“查看记录”的按钮。我的想法是,当我单击它时,它会在表格中显示数据库中的所有记录。 我能够从数据库中检索记录并使用System.out.println或JOptionPane.showMessageDialog函数显示它们,但是当尝试使用Jtable显示它时,我似乎无法弄清楚我做错了什么。 我是Java的新手,并试图自学一些,但我已经坚持了一段时间。非常感谢帮助。
import net.proteanit.sql.DbUtils;
JTable employee_table;
class home extends JFrame implements ActionListener
public void actionPerformed(ActionEvent click)
if(click.getSource()==view_records)
{
try
{
Class.forName("com.mysql.jdbc.Driver");
Connection connect=DriverManager.getConnection("jdbc:mysql://privatedb/employee","sava","123456");
Statement stmt=connnect.createStatement();
ResultSet rsemp = stmt.executeQuery("SELECT * FROM employee");
employee_table.setModel(DbUtils.resultSetToTableModel(rsemp));
}
catch(Exception e){
System.out.println(e.getMessage());
} finally {
答案 0 :(得分:2)
NullPointerException
,请查看该行,然后检查您尝试在该行上使用哪个变量并进行修复。JTable
并将其分配给JTable
变量。答案 1 :(得分:0)
通过
连接到数据库private void connecting() {
try
{
JavaDBConnectivity dbobj=new JavaDBConnectivity();
conn=dbobj.Connect();
}
catch(Exception e){
JOptionPane.showMessageDialog(null,e );
}
}
//我希望你创建了一个连接数据库的类(这里是JavaDBConnectivity)
你可以创建一个按钮,然后在鼠标点击上添加一个事件(使用netbeans轻松完成)
private void submit_queryMouseClicked(java.awt.event.MouseEvent evt) {
try{
connecting();
// String query ="select * from "database name""; //use this or if u have text area for entering use the below statement
String query=QueryArea.getText();
pst = conn.prepareStatement(query);
rs = pst.executeQuery();
s.append (QueryArea.getText()).append("\n");
jTable.setModel(DbUtils.resultSetToTableModel(rs));
}
catch(Exception e){
JOptionPane.showMessageDialog(null,e );
}
}
答案 2 :(得分:0)
获取ResultSet rsemp后,使用以下代码
DefaultTableModel dtm=(DefaultTableModel) employee_table.getModel();
while(rsemp.next()){
Vector v1=new Vector();
//in the below manner do this for all the columns in ur table
v1.add(rsemp.getString("column1Name"));
v1.add(rsemp.getString("column2Name"));
//after adding like that
dtm.addRow(v1);
}