Android初始化本地数据库
原文:http://blog.csdn.net/itjavawfc/article/details/50860647
点击阅读原文
--------------------------------
最近遇到一个需求,一个同学不会搭服务器,但是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; }
}
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
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; }
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
就可以直接查询。
-------------
更多的Java,Angular,Android,大数据,J2EE,Python,数据库,Linux,Java架构师,:
http://www.cnblogs.com/zengmiaogen/p/7083694.html
Android初始化本地数据库相关推荐
- android 读取本地数据库db文件(Android sqlite)
我们知道Android中有四种数据存储方式: SharedPreference存储 content provider SQLite数据库存储 文件存储 今天我们主要说 本地数据库sqlite这种方式, ...
- android直接连接本地数据库文件,Android 直接连MySQL数据库
1.Android平台下与服务器数据库通信的方法 在Android平台下,连接电脑服务器的MySQL.PostgreSQL.Oracle.Sybase.Microsoft SQLServer等数据库管 ...
- android收藏功能demo,Android使用Realm数据库实现App中的收藏功能(代码详解)
前 言 App数据持久化功能是每个App必不可少的功能,而Android最常用的数据持久化方式主要有以下的五种方式: 使用SharedPreferences存储数据: 文件存储数据: SQLite数据 ...
- android读取excel数据库,Android 读取Excel数据并保存在本地数据库
在工作中遇到需要将Excel的数据读取出来并保存在本地数据库中的操作,数据如下: 图片.png 需要做以下准备: 读取Excel的jar包[文章末尾会分享该jar包] 保存数据的数据库框架,在这里我们 ...
- android:Android中用文件初始化sqlite数据库(zz)
很多时候在应用安装初始化时,需要创建本地数据库,同时为数据库添加数据,之后再从数据库中读取数据. 这里有2个思路 1.先在本地创建一个能支持android使用的sqlite数据库文件,启动时, ...
- Android中用文件初始化sqlite 数据库(二)
博 androidsqlite启动时数据库初始化 方法1已经讲述了一种初始化数据库的方法 它的数据库初始化不是用sql语句,而是用一个现成的sqlite的二进制文件进行直接copy到Android系 ...
- Android怎么查看手机中的本地数据库
我前几天做的项目中有本地数据库, 所以就 用的 SQLite,在调试数据库时,,很想看一下里面的表结构是否正确,这个时候就十分苦恼, 因为这个db文件不能够直接拿出来,我们知道,在DDMS里面有一个F ...
- android应用卸载后,出现的本地数据库内容未删除现象
现象:应用使用一段时间后,本地数据库和SharedPreferences中产生数据,将应用卸载后,再次安装,原有数据出现在应用中.因此,为了安全起见,需要将allowBackup标志值设置为false ...
- Android studio如何查看本地数据库
android开发有时候涉及到本地存储的时候,需要用到数据库,当开发者需要查看本地数据库的内容时,就会发现非常麻烦.以前我觉得google在这一方面是完全没有倾听开发者的呼声呀!这是有多麻烦就有多麻烦 ...
最新文章
- 【机器学习入门】(13) 实战:心脏病预测,补充: ROC曲线、精确率--召回率曲线,附python完整代码和数据集
- python带通滤波_python中的fft带通滤波器
- HDU 1251 统计难题(Trie模版题)
- 进行判断使用class_记一次使用 Arthas 热更新线上代码
- 权限管理系统设计_多校区的教育培训机构,如何选择培训学校crm管理系统?
- mean shift
- JVM监控及诊断工具命令行篇之jstack
- [网络安全提高篇] 一一三.Powershell恶意代码检测 (1)论文总结及抽象语法树(AST)提取
- 怎么压缩word文档的大小?
- 证件照的背景颜色转换
- 已解决The method is not allowed for the requested URL.
- 数字电路实验(四)——寄存器、计数器及RAM
- Psychtoolbox刺激呈现工具包的安装及下载
- Android studio 多渠道打包(包括不同的包使用不同的资源文件、不同的包写不同的代码,包名等等)
- nsfw什么颜色_“ NSFW”是什么意思,以及如何使用它?
- js 保留两位数且不四舍五入
- C语言网络聊天室——服务器端
- 东风风行t5evo噪音测试软件,【图】百公里加速9.5秒 实测东风风行T5 EVO_汽车江湖...
- 更相减损术--最大公约数
- OpenGL透视投影
热门文章
- 机器人无限火力无限e符文_LOL:无限火力开黑指南 三大玩法让你快乐加倍
- android 生成泛型对象,java android解析多层含有泛型对象的json数据获取不到泛型类型解析失败解决办法...
- JAVA不同类型数组重载_java学习笔记--java中的方法与数组
- centos radius mysql_FreeRadius2 MySQL配置
- jitter 如何优化网络_抖音优化该怎么做?
- php连接数据库navicat,navicat数据库如何连接php
- java重写重定向_JavaWeb请求转发与请求重定向理解
- codeforces MUH and Important Things
- 随机数归并排序c语言,用C语言实现归并排序
- 安卓qpythonttsspeak_当python遇到Android手机 那么,万物皆可盘