中文字幕在线观看,亚洲а∨天堂久久精品9966,亚洲成a人片在线观看你懂的,亚洲av成人片无码网站,亚洲国产精品无码久久久五月天

Android本地數(shù)據(jù)操作

2018-07-20    來源:open-open

容器云強勢上線!快速搭建集群,上萬Linux鏡像隨意使用
      在安卓開發(fā)中,不操作數(shù)據(jù)庫的情況幾乎是不可能的!一般情況下我們是在啟動應(yīng)用后,會在本地建立數(shù)據(jù)名(DATABASE_NAME)為XX數(shù)據(jù)庫,然后 在需要用的時候進行增刪改查操作。但有時候,我們也可能不會這樣進行操作,我們會先把建立好的數(shù)據(jù)庫放在項目的本地文件夾(如 res/raw,assert)下面,然后再對數(shù)據(jù)庫進行操作。這種方案也有一定的好處,就是我們先可以用數(shù)據(jù)庫工具建立好數(shù)據(jù)表,然后直接在代碼中操作 表就可以了,就不用再用create table之類的建表語句建立表格,可以減少一些代碼。不過現(xiàn)在有很多orm操作框架,直接在項目中建表操作也是相當(dāng)?shù)豦asy的。

      大概的步驟就是:1,建立好數(shù)據(jù)庫如test.db;

                                       2,把建立好的數(shù)據(jù)庫test.db放到項目本地文件夾;

                                       3,對數(shù)據(jù)庫進行操作。

     下面是操作的部分代碼(我的數(shù)據(jù)庫是放在res/raw文件夾下的):

首先把數(shù)據(jù)庫保存到內(nèi)存中:

public class dbSaveToLocal {  
    
  //數(shù)據(jù)庫存儲路徑,當(dāng)然也可以保存到sd卡中
  String filePath = "data/data/com.ldm.cn/test.db";  
  //數(shù)據(jù)庫存放的文件夾 data/data/com.ldm.cn下
  String pathStr = "data/data/com.ldm.cn";  
  SQLiteDatabase database;   
  public  SQLiteDatabase getDatabase(Context context){  
    System.out.println("filePath:"+filePath);  
    File file=new File(filePath);  
      //查看數(shù)據(jù)庫文件是否存在  
      if( file.exists(){Log.i("test", "存在數(shù)據(jù)庫");
        //存在則直接返回打開的數(shù)據(jù)庫  
        return SQLiteDatabase.openOrCreateDatabase(file, null);  
      }else{  
        //不存在先創(chuàng)建文件夾  
        File path=new File(pathStr);  
        if (path.mkdir()){  
          Log.i("test", "創(chuàng)建成功"); 
        }else{  
          Log.i("test", "創(chuàng)建失敗");
        };  
        try {  
          
          //得到數(shù)據(jù)庫的輸入流  
          InputStream is=getResources().openRawResource(R.raw.xx);  
          Log.i("test", is+"");
          //用輸出流寫到SDcard上面	
          FileOutputStream fos=new FileOutputStream(file);  
          //創(chuàng)建byte數(shù)組  用于1KB寫一次  
          byte[] buffer=new byte[1024];  
          int count = 0;  
          while((count = is.read(buffer))>0){  
            fos.write(buffer,0,count);  
          }  
          //最后關(guān)閉就可以了  
          fos.flush();  
          fos.close();  
          is.close();  
        } catch (IOException e) {  
          // TODO Auto-generated catch block  
          e.printStackTrace();  
          return null;
        }  
        //就可以返回數(shù)據(jù)庫了  
        return openDatabase(context);  
      }  
  }  
}


接下來有了數(shù)據(jù)庫了,就可以在需要操作的地方用代碼操作數(shù)據(jù)庫中相應(yīng)的數(shù)據(jù)表了。當(dāng)然我們有時在項目中已經(jīng)建立好數(shù)據(jù)庫, 我們可以把單個的數(shù)據(jù)表文件(如json/xml等)放在raw下面,然后通過文件流把內(nèi)容存到數(shù)據(jù)庫中對應(yīng)的表格中,然后再操作數(shù)據(jù)。

標(biāo)簽: 代碼 數(shù)據(jù)庫

版權(quán)申明:本站文章部分自網(wǎng)絡(luò),如有侵權(quán),請聯(lián)系:west999com@outlook.com
特別注意:本站所有轉(zhuǎn)載文章言論不代表本站觀點!
本站所提供的圖片等素材,版權(quán)歸原作者所有,如需使用,請與原作者聯(lián)系。

上一篇:Android中Handler小例子

下一篇:Android用SurfaceView播放本地視屏(音頻)文件