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插入到。只要没有附加的数据库,就永远不需要数据库名称。