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