将数据库从MySQL更改为SQLite后出现Java项目错误

将数据库从MySQL更改为SQLite后出现Java项目错误,java,mysql,sqlite,netbeans,jdbc,Java,Mysql,Sqlite,Netbeans,Jdbc,我正在学习java 我已经使用mysql创建了简单(CRUD)java程序,效果很好 我想尝试切换到具有相同数据库的SQLite(我已经将mysql数据库转换为SQLite) 我正在使用这个JDBC驱动程序: 但不知何故,netbeans无法完成运行我的程序(尽管之前没有错误) 我在输出栏上发现了许多新错误: 在我的主窗体类中(第23-46行) private void Tampil(){ 试一试{ int row=tabel.getRowCount(); for(int i=0;iCla

我正在学习java 我已经使用mysql创建了简单(CRUD)java程序,效果很好

我想尝试切换到具有相同数据库的SQLite(我已经将mysql数据库转换为SQLite)

我正在使用这个JDBC驱动程序:

但不知何故,netbeans无法完成运行我的程序(尽管之前没有错误) 我在输出栏上发现了许多新错误:

在我的主窗体类中(第23-46行)

private void Tampil(){
试一试{
int row=tabel.getRowCount();

for(int i=0;i
ClassNotFoundException
是运行时可以获得的异常。请参阅:其中说明了可能的原因:

当应用程序尝试通过其字符串名称加载类时引发,使用:

  • 类中的forName方法
  • 类加载器中的findSystemClass方法
  • 类类加载器中的loadClass方法
因此,在我看来,问题在于您没有将它正确地添加到netbeans类路径中


此外,您应该检查您是否使用了稳定发布的驱动程序版本。我建议使用:

谢谢,我想我使用了错误的版本,但我遇到了新的错误:
java.sql.SQLException:SQLite只支持线程“AWT-EventQueue-0”java.lang.NullPointerException中的类型\u FORWARD\u only cursorexception位于tes.MainForm.Tampil(MainForm.java:31)在tes.MainForm.(MainForm.java:52)等处
@Adamanusia请提出新问题,因为我觉得这个问题已经解决了。
java.lang.ClassNotFoundException: org.sqlite.JDBCException in thread "AWT-EventQueue-0" java.lang.NullPointerException
at tes.MainForm.Tampil(MainForm.java:46)
at tes.MainForm.<init>(MainForm.java:85)
at tes.MainForm$4.run(MainForm.java:329)
at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:251)
at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:733)
at java.awt.EventQueue.access$200(EventQueue.java:103)
at java.awt.EventQueue$3.run(EventQueue.java:694)
at java.awt.EventQueue$3.run(EventQueue.java:692)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:76)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:703)
at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:242)
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:161)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:150)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:146)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:138)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:91)`
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
public class DBConnection {   
Connection c = null;
Statement script;

public DBConnection(){
    try{
        Class.forName("org.sqlite.JDBC");
 //  Class.forName("com.mysql.jdbc.Driver");
   // c = DriverManager.getConnection("jdbc:ucanaccess://c:/asa.accdb");
 c = DriverManager.getConnection("jdbc:sqlite:C:/titit2.db");
   // c = DriverManager.getConnection("jdbc:mysql://localhost:3306/titit","root","root");
    script = c.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE, ResultSet.CONCUR_UPDATABLE);
    System.out.println("Koneksi Sukses");
    }catch(  SQLException | ClassNotFoundException ex){
    System.err.print(ex);
    }
}
}
    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);

        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);
    }
}