我是java新手。我試圖編寫一個搜索代碼,它應該從數據庫(MS Access)中檢索特定的搜索數據並將其顯示在jTable中。但它給了我一個空指針異常。 它的代碼如下:如何使用jTable從數據庫檢索數據
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import javax.swing.JOptionPane;
import java.util.Vector;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.swing.table.DefaultTableModel;
import javax.swing.table.TableModel;
public class GuestDetail extends javax.swing.JFrame {
PreparedStatement ps;
ResultSet rs;
Connection conn;
Statement stmt;
TableModel tm;
int sr;
/**
* Creates new form GuestDetail
*/
public GuestDetail() {
initComponents();
try{
conn = HotelManagement.ConnectDb();
tm=new DefaultTableModel(4, 4);
jTable1.setModel(tm);
}catch(Exception ex)
{
JOptionPane.showMessageDialog(null, ex);
}
}
private void jButton3ActionPerformed(java.awt.event.ActionEvent evt) {
// TODO add your handling code here:
try{
System.out.println("Searching Records..");
String fn=jTextField1.getText();
System.out.println("searching name="+fn);
stmt=conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE);
// String query1="SELECT * FROM GuestDetails WHERE FirstName LIKE'fn%'";
String query="select FirstName,LastName,City,ContactNo from GuestDetails where FirstName= ' "+jTextField1.getText()+" '";
System.out.println("query:"+query);
rs.next();
int rows=rs.getInt(1);
ResultSet rs= stmt.executeQuery(query);
Object[][] data=new Object[rows][4];
Object[] headers={"FirstName","LastName","City","ContactNo"};
int i=0;
while(rs.next())
{
int j=0;
data[i][j++]=rs.getString(1);
data[i][j++]=rs.getString(2);
data[i][j++]=rs.getString(3);
data[i++][j]=rs.getLong(4);
}
DefaultTableModel tm=new DefaultTableModel(data, headers);
jTable1.setModel(tm);
}catch (Exception ex) {
Logger.getLogger(GuestDetail.class.getName()).log(Level.SEVERE, null, ex);
ex.printStackTrace();
}
你可以請張貼異常堆棧跟蹤? – DeepInJava 2014-10-18 14:11:14
_代碼如下給出_你給我們的代碼甚至不會編譯。除此之外,只是說你有一個'NullPointerException'並不是真的有用。我們需要知道在你發佈的代碼中哪一行發生了'NullPointerException'。但是如果你找出發生'NullPointerException'的地方,你也可以修復它。另見[這個問題](http://stackoverflow.com/q/218384/1076463) – Robin 2014-10-18 15:28:50