我在android项目之外使用eclipse制作一个sqlight
我应该在Android清单中添加什么才能使其正常工作?
谢谢Mathias,让我们把这个q带到另一个使用java生成SQL文件的项目中
假设这个。如何在致电 SQLiteDatabase.NO_LOCALIZED_COLLATORS
时设置 SQLiteDatabase.openDatabase()
标志?
我的代码是
Class.forName("org.sqlite.JDBC");
Connection conn = DriverManager.getConnection("jdbc:sqlite:test.db");
/*
*some code
*/
Statement stat = conn.createStatement();
stat.executeUpdate("drop table if exists "+TABLE_NAME+";");
//stat.executeUpdate("create table "+TABLE_NAME+" (name, occupation);");
stat.executeUpdate("create table "+TABLE_NAME+" ("+VALUE+","+TYPE+","+LETTER+");");
PreparedStatement prep = conn.prepareStatement(
"insert into "+TABLE_NAME+" values (?, ?,?);");
即使我使用:
db = SQLiteDatabase.openDatabase(myPath, null, SQLiteDatabase.NO_LOCALIZED_COLLATORS);
当我使用查询时:
String s = "Israel";
Cursor cursor = db.query(TABLE_NAME, new String[] {VALUE}
,VALUE + " like " + "'%" + s +"%'", null, null, null, null);
我得到一个例外。
答案 0 :(得分:0)
您不需要在Android清单中添加任何特殊内容。您可以从任何地方打开数据库,也可以从SD卡或其他地方打开数据库。否则,放置数据库的常见位置是应用程序的assets文件夹。
在android项目之外创建数据库时,只需确保创建元数据表(如Android文档中所述)或在调用SQLiteDatabase.NO_LOCALIZED_COLLATORS
时设置SQLiteDatabase.openDatabase()
标志。另外,您应该注意所有表中的主键都是_id。这些是创建新数据库时要考虑的最重要的事项。
元数据表也可能有用:
What is the android_metadata table?
No such table android_metadata, what's the problem?
有用的博客: http://www.reigndesign.com/blog/using-your-own-sqlite-database-in-android-applications/