Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/eclipse/9.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
Android 如何将sqlite文件导入到我的项目中?_Android_Eclipse_Sqlite - Fatal编程技术网

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

Android 如何将sqlite文件导入到我的项目中?,android,eclipse,sqlite,Android,Eclipse,Sqlite,我正在android项目之外使用eclipse制作SQLlight 我应该在我的android清单中添加什么才能让它工作 谢谢Mathias,让我们把这个q带到另一个使用java生成SQL文件的项目 假设是这样。调用SQLiteDatabase.openDatabase()时,如何设置SQLiteDatabase.NO\u LOCALIZED\u COLLATORS标志 我的密码在那边 Class.forName("org.sqlite.JDBC"); Connectio

我正在android项目之外使用eclipse制作SQLlight

我应该在我的android清单中添加什么才能让它工作

谢谢Mathias,让我们把这个q带到另一个使用java生成SQL文件的项目 假设是这样。调用
SQLiteDatabase.openDatabase()
时,如何设置
SQLiteDatabase.NO\u LOCALIZED\u COLLATORS
标志

我的密码在那边

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

我有个例外

您不需要在android清单中添加任何特殊内容。您可以从任何位置打开数据库,即也可以从SD卡或其他位置打开数据库。否则,将数据库放在应用程序的assets文件夹中

在android项目外部创建db时,只需确保创建元数据表(如android文档中所述)或在调用
SQLiteDatabase.openDatabase()
时设置
SQLiteDatabase.NO\u LOCALIZED\u COLLATORS
标志。此外,您应该注意到,所有表中的主键都是Y.ID。这是创建新DB时要考虑的最重要的事情。

有关元数据表的另一个有用信息可能是:

有用的博客:

调用SQLiteDatabase.openDatabase()时,应在何处设置SQLiteDatabase.NO\u LOCALIZED\u COLLATORS标志?请参见openDatabase(String,SQLiteDatabase.CursorFactory,int)方法的第三个参数。在打开数据库的应用程序中调用此函数。当我使用emulator并希望获取本地应用程序文件(即我使用的数据库)时,另一个q是:private static final String DB_PATH=“/data/data/com.myappname/assets/test1.DB”;这是模拟器上的正确位置吗?我想路径应该是“/data/data/com.myappname/databases/test1.db”。实际上,您可以在Eclipse中通过ddms浏览emulator(也可以是独立的,ddms是Android SDK中的一个工具)。然后,您将有一个“文件资源管理器”选项卡,您可以在其中浏览系统和数据文件夹。好的,如果您在代码中不使用SQLiteDatabase和/或SQLiteOpenHelper,而是使用本机Java方法,那么您可能最好手动在DB中创建元数据表(尽管可以为空)。不过,我建议研究一下上面提到的类,它们使在Android上使用sqlite更容易。我下面的方法假设您在打开数据库时使用SQLiteDatabase类。谢谢Mathias,即使我还处于这种情况,还是要谢谢您。