Java中用sqlite访问数据库

Java中用sqlite访问数据库,java,sql,database,sqlite,database-connection,Java,Sql,Database,Sqlite,Database Connection,我试图访问数据库,然后插入新数据,但下面的代码给出了以下输出: Opened database successfully java.sql.SQLException: [SQLITE_ERROR] SQL error or missing database () 数据库是在另一个类中创建的,无论数据库是否已创建,我仍然会遇到此错误。 是什么导致了这个错误 Statement stmt = null; Connection c = null; try {

我试图访问数据库,然后插入新数据,但下面的代码给出了以下输出:

Opened database successfully
java.sql.SQLException: [SQLITE_ERROR] SQL error or missing database ()
数据库是在另一个类中创建的,无论数据库是否已创建,我仍然会遇到此错误。 是什么导致了这个错误

    Statement stmt = null;
    Connection c = null;
    try {
        Class.forName("org.sqlite.JDBC");
        c = DriverManager.getConnection("jdbc:sqlite:src/test.db");
        System.out.println("Opened database successfully");

        stmt = c.createStatement();
        String sql = "INSERT INTO table_one (id, name) VALUES (Null, 'Hayley');";
        stmt.executeUpdate(sql); 
        System.out.println("Inserted records");

        stmt.close();
        c.close();

    } catch ( Exception e ) {
        System.err.println( e.getClass().getName() + ": " + e.getMessage() );
        System.exit(0);
    }
System.out.println("Table created sucessfully");

不在
id
列中插入
null
值如何。插入
null
值是没有用的。它可能已生成sql异常。尝试在表中插入一个(名称)值('Hayley')

我建议使用
PreparedStatement
而不是
Statement
,因为SQL注入的威胁


有时,如果没有给出数据库名称,可能会发生特定的sql异常。您是否尝试过编写数据库名称,如
INSERT-INTO-database_-name.table_-one(name)VALUES('Hayley')

数据库真的存在吗?不要在您的
src
目录中创建内容,它在运行时将不存在…不知道这样更改了目录,仍然有相同的错误。但是表
table\u one
是否存在于数据库文件中?是的,table\u one确实存在于数据库文件中,如果我尝试将数据添加到与创建此数据库的位置相同的类中,仍然会发生相同的错误。如果发生此错误
java.sql.SQLException:PreparedStation不支持此错误,会导致什么?将NULL插入到。只要没有附加的数据库,就永远不需要数据库名称。