Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sqlite/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 无法读取用其他语言创建的SQLite数据库_Java_Sqlite - Fatal编程技术网

Java 无法读取用其他语言创建的SQLite数据库

Java 无法读取用其他语言创建的SQLite数据库,java,sqlite,Java,Sqlite,我有一个用python创建的SQLite3数据库。默认情况下,它用Unicode编写数据库 现在,我尝试使用SQLite JDBC在Java小程序中查询数据库。我找不到表、行等,因为我认为是ANSI中的Java和/或JDBC查询 有人知道我如何用Java中的unicode查询来查询SQLite3数据库吗?类似于以下内容的内容不起作用(在试图执行Unicode SQL查询的Java中): 如果我用python访问数据库,我可以打印出表,这没有问题&进行更新,但是如果我用Java进行同样的操作,我的

我有一个用python创建的SQLite3数据库。默认情况下,它用Unicode编写数据库

现在,我尝试使用SQLite JDBC在Java小程序中查询数据库。我找不到表、行等,因为我认为是ANSI中的Java和/或JDBC查询

有人知道我如何用Java中的unicode查询来查询SQLite3数据库吗?类似于以下内容的内容不起作用(在试图执行Unicode SQL查询的Java中):

如果我用python访问数据库,我可以打印出表,这没有问题&进行更新,但是如果我用Java进行同样的操作,我的查询不会返回任何结果。这是编码问题还是其他问题

这适用于导入sqlite3

def blah(): 
    conn = sqlite3.connect( "a.db" )
    cur = conn.cursor()
    res = cur.execute( "SELECT name FROM sqlite_master WHERE type='table'" ).fetchal()
    print res  
废话

当它应该返回与上面相同的表时,它不返回任何表

Class.forName("org.sqlite.JDBC");
Connection conn = DriverManager.getConnection("jdbc:sqlite:a.db");
Statement stat  = conn.createStatement(); 
conn.setAutoCommit(false);
ResultSet tables = stat.executeQuery("SELECT name FROM sqlite_master WHERE type='table'");
String b = "";  

while (tables.next())  {   b+= "table= " + tables.getString("name");       } 

吉姆,这太奇怪了,应该行得通。您是否尝试从控制台打开数据库? 您可以通过运行sqlite3 a.db打开它


让我感兴趣的是,您试图从java小程序打开db。你给了它必要的权限并签名了吗,这样苹果就可以真正地写入磁盘了吗?

吉姆,这很奇怪,它应该可以工作。您是否尝试从控制台打开数据库? 您可以通过运行sqlite3 a.db打开它


让我感兴趣的是,您试图从java小程序打开db。你给了它必要的权限并签署了它,这样苹果就可以真正地写入磁盘了吗?

打开
sqlite3 a.db
并键入
PRAGMA编码?默认情况下应该是UTF8

我能够在命令行上创建UTF8 sqlite数据库,并使用sqlite jdbc读取该文件的内容

您确定要连接到用python创建的数据库吗?如果数据库不存在,则sqlite将创建数据库,并且数据库中不会有任何表。这就是可能发生在你身上的事情


您是否在同一目录中运行java和python

打开
sqlite3 a.db
并键入
PRAGMA编码?默认情况下应该是UTF8

我能够在命令行上创建UTF8 sqlite数据库,并使用sqlite jdbc读取该文件的内容

您确定要连接到用python创建的数据库吗?如果数据库不存在,则sqlite将创建数据库,并且数据库中不会有任何表。这就是可能发生在你身上的事情


您是否在同一目录中运行java和python

另一个相关的问题是,“你能只用Java和JDBC创建和填充一个数据库吗?”我知道这很奇怪,我已经用Java和JDBC创建了一个SQLite3DB,它可以工作(可以读取它,我使用与python中相同的SQL语句)。python脚本可以读取新数据库。用Python创建的SQLite3数据库在Java JDBCJim中似乎不可读,您是否能够从控制台打开数据库,并验证您放在那里的数据是否确实存在?我可以在控制台和Python中打开数据库,确定所有表是否存在并进行查询等。另一个相关问题是,“你能只用Java和JDBC创建和填充一个数据库吗?”我知道这很奇怪,我已经用Java和JDBC创建了一个SQLite3DB,它可以工作(可以读取它,我使用与python中相同的SQL语句)。python脚本可以读取新数据库。用python创建的SQLite3数据库在Java JDBCJim中似乎不可读,您是否能够从控制台打开数据库,并验证您放在那里的数据是否确实存在?我可以在控制台和python中打开数据库,确定所有表是否存在并进行查询等。