我有一个在python中创建的SQLite3数据库。默认情况下,它以Unicode编写数据库。
现在我尝试使用SQLite JDBC在Java Applet中查询数据库。而且我找不到表格,行等等,因为我认为用ANSI进行Java& /或JDBC查询。
有谁知道如何用Java中的unicode查询查询我的SQLite3数据库?类似下面的内容不起作用(在Java中尝试执行Unicode SQL查询):
如果我在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
blah()
当它返回与上面相同的表时,它不返回表
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"); }
答案 0 :(得分:1)
答案 1 :(得分:0)
让您疲惫不堪,打开sqlite3 a.db
并输入PRAGMA encoding;
?它应该默认为UTF8。
我能够在命令行上创建一个UTF8 sqlite数据库,并使用sqlite jdbc读取该文件的内容。
您确定要连接到使用python创建的数据库吗?如果数据库不存在,则sqlite将创建数据库,并且其中不包含任何表。这可能是你发生的事情。
您是否在同一目录中运行java和python?