• 媒体宣传报道重庆日报 王国平:扮靓重庆两江四岸” 让城市有机更新 2019-04-26
  • 我相信“交警雨中护送高考生”是真,“交警雨中护送高考生”反被该高考生家长投诉是假。 2019-04-16
  • 14名消防员日巡逻28公里 洗冷水澡 2019-04-10
  • 靶壕有了“蓝军”,百发百中的“神枪手”练起来 2019-04-10
  • 不是秀强大了,别人就会来做朋友,这逻辑不对 2019-04-01
  • 候选企业:中国石油呼和浩特石化公司 2019-03-26
  • 航天员沙漠野外生存训练完美收官!为第一天团打call 2019-03-25
  • 请问,建立市场经济后,原计划经济哪里去?改革后,我们还在实行计划经济,为何没有提及? 2019-03-25
  • 构建年轻干部梯次培养链 2019-03-19
  • 孙实的专栏作者中国国家地理网 2019-03-15
  • 湖南师范大学举行研究阐释党的十九大精神国家社科基金重大专项学术研讨会 2019-03-15
  • [雷人]蠢货!土地处于不同的城市和地段,关联的资源不一样,价值也不一样。不然给咱俩同样面积的土地,咱的在北上广深,你的在边远山区,你干么? 2019-03-08
  • 国际社会持续热议上合青岛峰会:上合组织发展进入新阶段 彰显中国领导力 2019-03-08
  • 珍惜野生动物频现甘孜境内 生态环境质量不断提升 2019-03-06
  • "新经济形势下金融创新的变革与机遇"论坛 2019-03-06
  • 频道栏目
    神奇公式秒杀全国11选5 > 程序开发 > 移动开发 > Android > 正文
    Android开发之引用外部数据库操作讲解
    2018-07-30 14:30:07         来源:重余的博客  
    收藏   我要投稿

    Android 引用外部数据库(一)

    神奇公式秒杀全国11选5 www.2zfa.com 有现成的数据库,需要直接引入到项目中使用。

    #准备

    在开始之前我们要确认现有的数据库的表结构和字段信息等。(注意要看清楚数据库的大小,后面有用)

    #第一步

    将外部数据库拷贝到项目中的 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技术培训 | 神奇公式秒杀全国11选5

    版权所有: 神奇公式秒杀全国11选5--致力于做实用的IT技术学习网站

  • 媒体宣传报道重庆日报 王国平:扮靓重庆两江四岸” 让城市有机更新 2019-04-26
  • 我相信“交警雨中护送高考生”是真,“交警雨中护送高考生”反被该高考生家长投诉是假。 2019-04-16
  • 14名消防员日巡逻28公里 洗冷水澡 2019-04-10
  • 靶壕有了“蓝军”,百发百中的“神枪手”练起来 2019-04-10
  • 不是秀强大了,别人就会来做朋友,这逻辑不对 2019-04-01
  • 候选企业:中国石油呼和浩特石化公司 2019-03-26
  • 航天员沙漠野外生存训练完美收官!为第一天团打call 2019-03-25
  • 请问,建立市场经济后,原计划经济哪里去?改革后,我们还在实行计划经济,为何没有提及? 2019-03-25
  • 构建年轻干部梯次培养链 2019-03-19
  • 孙实的专栏作者中国国家地理网 2019-03-15
  • 湖南师范大学举行研究阐释党的十九大精神国家社科基金重大专项学术研讨会 2019-03-15
  • [雷人]蠢货!土地处于不同的城市和地段,关联的资源不一样,价值也不一样。不然给咱俩同样面积的土地,咱的在北上广深,你的在边远山区,你干么? 2019-03-08
  • 国际社会持续热议上合青岛峰会:上合组织发展进入新阶段 彰显中国领导力 2019-03-08
  • 珍惜野生动物频现甘孜境内 生态环境质量不断提升 2019-03-06
  • "新经济形势下金融创新的变革与机遇"论坛 2019-03-06