Android初始化本地数据库
来源:互联网 发布:linux 浏览网页 编辑:程序博客网 时间:2024/06/05 00:10
最近遇到一个需求,一个同学不会搭服务器,但是Android课程设计需要用到很多数据,这样就出现了一个问题,一个内容型的APP,怎么初始化数据库呢?
很容易想到俩种方案,一个是在App中写一个录入内容的页面,用手动的方式录入数据;另一个是在外部建立一个数据库,用数据库工具录入;第一种方案太慢,太麻烦,手动的录入简直就能把人折磨死,所以最后采用了外部建库的方式,用navicate for sqlite 很容易建立了一个数据库
得到了mydb.db数据库,那么怎么导入到Android App中尼,用下面的方案:
1.将mydb.db 放到raw文件夹下
2.编写将mydb.db 复制到sd卡中的工具类并获得SQLiteDatabase 的工具类
public class DBUtil { private static SQLiteDatabase database; public static final String DATABASE_FILENAME = "myb.db"; public static final String PACKAGE_NAME = "com.mobilexu.test"; public static final String DATABASE_PATH = "/data" + Environment.getDataDirectory().getAbsolutePath() + "/" + PACKAGE_NAME; public static SQLiteDatabase openDatabase(Context context) { try { String databaseFilename = DATABASE_PATH + "/" + DATABASE_FILENAME; File dir = new File(DATABASE_PATH); if (!dir.exists()) { dir.mkdir(); } if (!(new File(databaseFilename)).exists()) { InputStream is = context.getResources().openRawResource(R.raw.mydb); FileOutputStream fos = new FileOutputStream(databaseFilename); byte[] buffer = new byte[8192]; int count = 0; while ((count = is.read(buffer)) > 0) { fos.write(buffer, 0, count); } fos.close(); is.close(); } database = SQLiteDatabase.openOrCreateDatabase(databaseFilename, null); return database; } catch (Exception e) { e.printStackTrace(); } return null; } }
3.在数据中查询的时候:直接用工具类获得SQLiteDatabase来查询
public static List<Season> findAllSeason(Context context) { List<Season> seasons = new ArrayList<Season>(); SQLiteDatabase myDateBase = DBUtil.openDatabase(context); String sql = "select * from Season"; try { Cursor c = myDateBase.rawQuery(sql, null); c.moveToFirst(); while (!c.isAfterLast()) { Season season = new Season(); season.setId(c.getInt(c.getColumnIndex("id"))); season.setName(c.getString(c.getColumnIndex("name"))); seasons.add(season); c.moveToNext(); } if (!c.isClosed()) { c.close(); } if (myDateBase.isOpen()) { myDateBase.close(); } } catch (Exception e) { e.printStackTrace(); } return seasons; }
就可以直接查询。
0 0
- Android 初始化本地数据库
- Android初始化本地数据库
- Android初始化本地数据库
- Android sqlite 初始化数据库
- Android sqlite本地数据库
- android加载本地数据库
- android 本地数据库更新
- Android本地数据库升级
- android 查看本地数据库
- Android sqlite本地数据库
- Android客户端之“微服私访”App的系统学习(二)TextInputLayout实现登录界面和LitePal初始化本地数据库
- android数据库本地备份还原
- Android N TelephonyProvider及数据库初始化
- <Android>本地数据库之--Xutils的使用
- 浅谈android本地数据库(SQLite)使用
- Android查找本地数据库显示数据
- 初始化本地软时钟
- 本地变量初始化
- 最大子列和
- MapReduce的输入输出格式
- 虚拟存储器之存储器映射
- KMP算法
- 优化延迟
- Android初始化本地数据库
- 开启reuse_port让Tengine性能提升3倍
- 虚拟内存之TLB加速地址翻译
- 虚拟存储器之地址翻译
- 秒杀系统架构分析与实战
- TCP的三次握手和四次撒手
- java 多线程实现生产者消费者模型
- STM32_SPI_笔记
- iOS学习 UITableViewCell 三种定制方法