我正在开发一个android应用程序,用户应该输入一些函数:register,locate hospital位置,搜索消息(通过短信发送给注册用户),并可以安排和预约。到目前为止,所有的活动都完成了,但是我需要知道如何连接到数据库才能读取和存储这些数据。我正在使用Android 2.1,MacOsX和SQLite firefox扩展。如何连接一个sqlite数据库(sqlite firefox扩展)到android应用程序,用于android 2.1来查询并插入到数据库
这是我必须连接到sqllite db的代码,我做错了什么?
package com.bitnuts.imom;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import android.content.Context;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteOpenHelper;
public class DbManager extends SQLiteOpenHelper {
private static final String DB_NAME = "iMom.sqlite";
private static final String DB_PATH = "/data/data/com.bitnuts.imom/databases/";
private static final Integer DB_VERSION = 1;
private static final String TAG = "DbManager";
private final Context context;
private SQLiteDatabase db;
private DbManager dbManager;
public DbManager(Context context) {
super(context, DB_NAME, null, DB_VERSION);
this.context = context;
}
public DbManager open() {
dbManager = new DbManager(context);
db = dbManager.getWritableDatabase();
return this;
}
@Override
public void onCreate(SQLiteDatabase arg0) {
createNewDatabase();
}
@Override
public void onUpgrade(SQLiteDatabase arg0, int arg1, int arg2) {
// TODO Auto-generated method stub
}
public void createNewDatabase() {
InputStream assetsDB = null;
try {
assetsDB = context.getAssets().open(DB_NAME);
OutputStream dbOut = new FileOutputStream(DB_PATH + DB_NAME);
byte[] buffer = new byte[1024];
int length;
while ((length = assetsDB.read(buffer)) > 0) {
dbOut.write(buffer, 0, length);
}
dbOut.flush();
dbOut.close();
assetsDB.close();
} catch (IOException e) {
}
}
}
感谢您的回答。我是一名学生,我在android模拟器上运行它。我还没有外部服务器上的任何东西。我还需要一个REST层才能够与本地主机上的数据库进行交互,还是有另一种方式? – 2011-02-15 08:40:02
Android上没有数据库驱动程序,因此无法连接到数据库(设备上的嵌入式数据库除外)。所以,是的,您需要某种Web服务层来连接,REST更受欢迎。谢谢 – 2011-02-15 11:38:14