在android开发中,通常都是自己创建数据库然后开始开发使用,但难免会用别人做好的数据库中的数据,我们该怎么使用呢?
step1:
在module中创建一个assets目录
step2:
将数据库复制到assets目录下
step3:
为了保护数据库文件,将test.db文件复制到自己包名下的数据库文件夹下
public static String DB_PATH = "/data/data/com.test.aaa/" + "databases/";
public static String SRC_DB_FILE_NAME = "test.db";
private SQLiteDatabase readDb() { File dir = new File(Constants.DB_PATH); if (!dir.exists()) { dir.mkdir(); } String srcDbName = Constants.DB_PATH + Constants.SRC_DB_FILE_NAME; try { LogUtils.i("start copy file "); InputStream inputStream = getResources().getAssets().open(assetFileName); FileOutputStream fos = new FileOutputStream(srcDbName); byte[] buf = new byte[1024 * 8]; int len = 0; while ((len = inputStream.read(buf)) != -1) { fos.write(buf, 0, len); } fos.close(); inputStream.close(); LogUtils.i("finish copy file "); SQLiteDatabase database = SQLiteDatabase.openOrCreateDatabase(srcDbName, null); return database; } catch (IOException e) { e.printStackTrace(); LogUtils.e("copy file is error " + e.toString()); return null; } }
step4:
根据上面的方法可以拿到SQLiteDatabase db对象,然后进行增删改查炒作,例如:
public ArrayList<DBBean> query(SQLiteDatabase db){ ArrayList<DBBean> list = new ArrayList<>(); String spl = "select * from " + Constants.TABLE_NAME; Cursor cursor = db.rawQuery(spl, null); int count = cursor.getCount(); LogUtils.i("db cursor count is " + count); while (cursor.moveToNext()){ String _id = cursor.getString(0); int test = cursor.getInt(1); String filePath = cursor.getString(2); list.add(new DBBean(_id,test,filePath)); } cursor.close(); LogUtils.i("read all from src db finish "); return list; }这就是android导入外部数据库的基本操作!