如何将sqlite文件导入我的项目?

时间:2010-06-23 13:56:06

标签: android eclipse sqlite

我在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);

我得到一个例外。

1 个答案:

答案 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/