Java 使用rs(next),但仅在SQLite中获得类型\u FOWARD\u
在简单的CRUDJava程序上成功使用mysql数据库之后,我尝试使用SQLite 使用此驱动程序:我遇到以下错误:Java 使用rs(next),但仅在SQLite中获得类型\u FOWARD\u,java,sqlite,jdbc,Java,Sqlite,Jdbc,在简单的CRUDJava程序上成功使用mysql数据库之后,我尝试使用SQLite 使用此驱动程序:我遇到以下错误: java.sql.SQLException: SQLite only supports TYPE_FORWARD_ONLY cursorsException in thread "AWT-EventQueue-0" java.lang.NullPointerException at tes.MainForm.Tampil(MainForm.java:31) mainform.j
java.sql.SQLException: SQLite only supports TYPE_FORWARD_ONLY cursorsException in thread "AWT-EventQueue-0" java.lang.NullPointerException
at tes.MainForm.Tampil(MainForm.java:31)
mainform.java:
private void Tampil(){
try{
int row = tabel.getRowCount();
for(int i=0;i<row;i++){
tabeldata.delete(0, row);
}
String sql;
sql = "SELECT * from asu";
ResultSet rs = c.script.executeQuery(sql); // line 31
while(rs.next()){
DataPegawai d = new DataPegawai();
d.setNo(rs.getInt("no"));
d.setNip(rs.getInt("nip"));
d.setNama(rs.getString("nama"));
d.setDivisi(rs.getString("divisi"));
d.setLevel(rs.getInt("level"));
tabeldata.add(d);
}
}catch(SQLException e){
System.err.print(e);
}
}
public MainForm() {
initComponents();
c = new DBConnection();
tabeldata = new TabelData();
tabel.setModel(tabeldata);
Tampil();
}
我想我只使用了rsnext,有没有遗漏什么?在DBConnection中,不应该指定ResultSet.TYPE\u SCROLL\u INSENSITIVE,而应该指定ResultSet.TYPE\u FORWARD\u,因为SQLite不支持SCROLL INSENSITIVE或SCROLL sensitive
问题不是发生在第31行,而是发生在DBConnection中,您将忽略SQLException,然后继续使用null脚本字段。然后在第31行触发一个NullPointerException
这还不是很清楚,因为1您忽略了SQLException,2使用System.out.print,它不添加换行符。相反,您应该使用printStackTrace。在哪一行出现错误?抱歉,在更改代码后,我编辑了问题非常感谢您:script=c.createStatementResultSet.TYPE\u SCROLL\u不敏感,ResultSet.CONCUR\u可更新;to:script=c.createStatementResultSet.TYPE_FORWARD_ONLY,ResultSet.CONCUR_READ_ONLY;它的作品如《魅力》我真的对这个结果集一无所知,稍后会读的谢谢
public class DBConnection {
Connection c = null;
Statement script;
public DBConnection(){
try{
Class.forName("org.sqlite.JDBC");
c = DriverManager.getConnection("jdbc:sqlite:C:/titit2.db");
script = c.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE, ResultSet.CONCUR_UPDATABLE);
System.out.println("Koneksi Sukses");
}catch( SQLException | ClassNotFoundException ex){
System.err.print(ex);
}
}
}