頻道欄目
首頁 > 程序開發 > 移動開發 > Android > 正文
Android開發之引用外部數據庫操作講解
2018-07-30 14:30:07         來源:重余的博客  
收藏   我要投稿

Android 引用外部數據庫(一)

有現成的數據庫,需要直接引入到項目中使用。

#準備

在開始之前我們要確認現有的數據庫的表結構和字段信息等。(注意要看清楚數據庫的大小,后面有用)

#第一步

將外部數據庫拷貝到項目中的 assets文件夾中,如圖

#第二步

在你要使用數據庫之前將數據庫拷貝到 /data/data/包名/databases/ 目錄下。

代碼

public static void copyDbFile(Context context, String db_name) {
 InputStream in = null;
 FileOutputStream out = null;
 //String path = "/data/data/" + context.getPackageName() + "/databases/";
 File filePath = context.getDatabasePath(db_name);
 //spUtils 是為了防止多次拷貝
 if (!SharePreferenceUtils.getBoolean(GlobalContent.COPE_SUCCESS,false)){
  try {
in = context.getAssets().open(db_name); // 從assets目錄下復制
out = new FileOutputStream(filePath);
int length = -1;
byte[] buf = new byte[1024];
while ((length = in.read(buf)) != -1) {
 out.write(buf, 0, length);
}
out.flush();
SharePreferenceUtils.putBoolean(GlobalContent.COPE_SUCCESS,true);
  } catch (Exception e) {
e.printStackTrace();
  } finally {
try {
 if (in != null) in.close();
 if (out != null) out.close();
} catch (IOException e1) {
 e1.printStackTrace();
}
  }
 }
}

#第三步

這時就可以開始查庫了

SqlLiteHelper sqlLiteHelper = new SqlLiteHelper(getContext(), "mySql.db", null, 1);
SQLiteDatabase readableDatabase = sqlLiteHelper.getReadableDatabase();

try {
  Cursor query = readableDatabase.query("message", new String[]{"_id", "message"}, null, null, null, null, null, limit);
  boolean b = query.moveToFirst();
  while (!query.isLast()) {
int id = query.getInt(query.getColumnIndex("_id"));
String message = query.getString(query.getColumnIndex("message"));
mDataList.add(new LoveMessageBean(id, message));
query.moveToNext();
  }
  query.close();
  Logger.i("mDataList : "+ mDataList.size());
 }catch (Exception e){
  UiUtils.showToast(getContext(),"error");
 }

到這里已經成功的把外部數據庫拷貝到項目中,并且開始 CRUD 了。

以上的方法,是做簡單也是最原始的方法,之后會嘗試使用第三方的工具來查詢,如 GreenDao LitePal 等。

點擊復制鏈接 與好友分享!回本站首頁
上一篇:關于AndroidStudio SDK Baiduyun Download (for android 6.0 development/Android Studio 1.5 - 2016)代碼分析
下一篇:Android開發之做一鍵批量卸載App功能的詳細講解
相關文章
圖文推薦
點擊排行

關于我們 | 聯系我們 | 廣告服務 | 投資合作 | 版權申明 | 在線幫助 | 網站地圖 | 作品發布 | Vip技術培訓 | 舉報中心

版權所有: 紅黑聯盟--致力于做實用的IT技術學習網站

加拿大28火车判定方法