java.sqlite.SQLException:没有这样的表:学生
当我尝试从 sqlite 数据库中的 fts4 表中显示 JTable 中的数据时,我收到此错误消息。我知道我的代码很好,因为它适用于普通的 sqlite 表。但我无法访问“使用 fts4 的虚拟表”。我可以访问我的数据库,但是这个带有 fts4 的虚拟表让我很头疼。我使用 Firefox 附加 SQLite 管理器通过以下查询创建 fts4 表:
使用 fts4 (id, first_name, last_name) 创建虚拟表学生;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.swing.JOptionPane;
import javax.swing.JTable;
import net.proteanit.sql.DbUtils;
public class TestGUI extends javax.swing.JFrame {
Connection con = null;
PreparedStatement pst = null;
ResultSet rs = null;
SqliteConnection sc = new SqliteConnection();
public TestGUI() {
initComponents();
con = SqliteConnection.ConnectSqlite();
UpdateTable();
}
public void UpdateTable(){
try {
String sql = "SELECT * from student";
pst = con.prepareStatement(sql);
rs=pst.executeQuery();
studentTable.setModel(DbUtils.resultSetToTableModel(rs));
} catch (Exception e) {
JOptionPane.showMessageDialog(null, e);
}
}
我需要为此使用一些不同的驱动程序吗?我使用此代码连接到 sqlite 数据库:
import java.sql.*;
import javax.swing.*;
public class SqliteConnection {
public Connection con = null;
PreparedStatement pst = null;
ResultSet rs = null;
public static Connection ConnectSqlite(){
try{
Class.forName("org.sqlite.JDBC");
Connection conn = DriverManager.getConnection("jdbc:sqlite:C:\\Documents and Settings\\Zoran Davidovic\\My Documents\\NetBeansProjects\\Test\\baza1.sqlite");
JOptionPane.showMessageDialog(null, "Connection successful!");
return conn;
}
catch(Exception e){
JOptionPane.showMessageDialog(null, "Error!");
return null;
}
}
}