Android 数据库
官方文档:https://developer.android.com/training/basics/data-storage/databases.html#WriteDbRow
原帖:http://sunzone.iteye.com/blog/1876902
查询数据库:
两种方式--
第一种方式:类似INSERT UPDATE DELETE,有两种方法使用select 从SQLite数据库检索数据。
使用rawQuery()直接调用select 语句,使用query() 方法构建一个查询。
小贴士:
* onCreate(); 该方法在数据库第一次创建的时候调用,只调用一次;
* onUpgrade(); 该方法在数据库版本更新的时候调用;
* T-SQL: 国际标准机制
DDL:数据定义语言:create drop alter;
DCL: 数据控制语言:grant revoke;
DML: 数据管理语言:insert delete update select ;
* select 列的列表 from 表的列表 where 条件语句 group by 分组属性 having 分组条件 order by 排序列 asc|desc limit m, n;
* 游标:游标的实质使一种能从包括多条数据记录的结果集种每次提取一条记录的机制;
游标的使用,Cursor的方法:
* close(); 关闭游标 ,释放资源;
* copyStringToBuffer(int columnIndex,CharArrayBuffer buffer); 在缓冲区中检索请求的列的文本,将其存储;
* getColumnCount(); 返回所有列的行数;
* getColumnIndex(String columnName); 返回指定的列,如果不存在那么返回-1;
* getColumnIndexOrThrow(String columnName);从0开始返回指定列的名称,如果不存在将抛出异常;
* getColumnName(int columnIndex); 从给定的索引返回列名;
* getColumnNames(); 返回一个字符串数组的列名;
* moveToFirst(); 将游标移动到第一条;
* moveToLast(); 将游标移动到最后一条;
* move(int offset); 将游标移动到指定ID;
* moveToNext(); 将游标移动到下一条;
* moveToPrevious(); 将游标移动到上一条;
* getCount(); 得到游标总记录条数;
* isFirst(); 判断当前游标是否为第一条数据;
案例:创建一个数据库,并在数据库第一次创建的时候初始化创建一张表student,添加记录,
然后查询数据库种表的数据,显示出来;
java代码如下:
/* 查询数据库 *//* 返回一个游标对象 */
public Cursor selectData(){
/* 与数据库获得连接,获得只读属性 */
SQLiteDatabase sqliteDatabase = dbhelper.getReadableDatabase();
/* 使用游标保存得到的结果集 *//* 参1:查询语句 ; 参2:查询条件 */
//Cursor cursor = sqliteDatabase.rawQuery("select * from student", null);
/* 使用查询语句:方式二
* @ distinct --是否去除重复行 例:值为:true/false;
* @ table --表名
* @ columns --要查询的列 例: new String[]{"id","name","age"}
* @ selection --查询条件 例:"id>?"
* @ selectionArgs --查询条件的参数 例:new String[]{"3"}
* @ groupBy --对查询的结果进行分组
* @ having --对分组的结果进行限制
* @ orderby --对查询的结果进行排序; 例:"age asc"
* @ limit --分页查询限制 ; 例:"2,5" 从第2行开始,到第5行结束;注:行数从0 开始;
* */
Cursor cursor = sqliteDatabase.query(true,"student", new String[]{"_id","name","age"}, "_id>?", new String[]{"1"}, null, null, "age desc", "1,5");
/* 使用游标---获取游标中的数据 */
while(cursor.moveToNext()){
String id = cursor.getString(cursor.getColumnIndex("_id"));
String name = cursor.getString(cursor.getColumnIndex("name"));
String age = cursor.getString(cursor.getColumnIndex("age"));
Toast.makeText(MainActivity.this, "_id="+id+" name="+name+" age="+age, 1000).show();
}
return cursor;
}
Android 数据库的更多相关文章
- 深入解析Sqlite的完美替代者,android数据库新王者——Realm
写在前面: 又到一年一度七夕虐狗节,看着大家忍受着各种朋友圈和QQ空间还有现实生活中的轮番轰炸,我实在不忍心再在这里给大家补刀,所以我觉得今天不虐狗,继续给大家分享有用的. 如果你比较关心androi ...
- [Android Pro] 完美Android Cursor使用例子(Android数据库操作)
reference to : http://www.ablanxue.com/prone_10575_1.html 完美 Android Cursor使用例子(Android数据库操作),Androi ...
- Android 数据库框架OrmLite的使用(一)
在这里记录下最基本的用法,官网上可了解相关的介绍. 1.下载OrmLite jar 在下载android的:ormlite-android-4.48.jar和ormlite-core-4.48.jar ...
- Android数据库升级
随着Android应用版本的迭代,经常遇到数据库表结构发生改变,或者一些指定的表数据需要更新.这也就引出一个问题Android数据库的更新问题. Android数据库升级分类 Android数据库更新 ...
- 优雅的处理Android数据库升级的问题
原始完成于:2015-04-27 19:28:22 提供一种思路,优雅的处理Android数据库升级的问题,直接上代码: 1 package com.example.databaseissuetest ...
- Android数据库之SQLite数据库
Android数据库之SQLite数据库 导出查看数据库文件 在android中,为某个应用程序创建的数据库,只有它可以访问,其它应用程序是不能访问的,数据库位于Android设备/data/data ...
- Android 数据库读取数据显示 [5]
2016-12-1 课程内容 昨天学了Android数据库升级.降级.创建 今天把数据库表里面的数据读取出来显示到手机屏幕上 下面代码是MainActivity.java 的代码 package co ...
- Android数据库信息显示在listview上
Key Points: 1.使用SimpleCursorAdapter将Android数据库信息显示在listview上 adapter = new SimpleCursorAdapter(this, ...
- android数据库持久化框架
android数据库持久化框架
- Android数据库高手秘籍(一)——SQLite命令
转载请注明出处:http://blog.csdn.net/guolin_blog/article/details/38461239 要想熟练地操作不论什么一个数据库.最最主要的要求就是要懂SQL语言, ...
随机推荐
- vscode调试单个PHP脚本文件
1.安装完vscode里的debug插件后, 在WorkSpace setting:添加上php的可执行文件路径: 2.下载适合自己PHP版本的Xdebug 3.在PHP目录下的php.ini配置文件 ...
- NOIP 2008 传纸条(洛谷P1006,动态规划递推,滚动数组)
题目链接:P1006 传纸条 PS:伤心,又想不出来,看了大神的题解 AC代码: #include<bits/stdc++.h> #define ll long long using na ...
- [Luogu] P4254 [JSOI2008]Blue Mary开公司
题目背景 Blue Mary 最近在筹备开一家自己的网络公司.由于他缺乏经济头脑,所以先后聘请了若干个金融顾问为他设计经营方案. 题目描述 万事开头难,经营公司更是如此.开始的收益往往是很低的,不过随 ...
- try catch影响Spring事务吗?
对于这个问题有两种情况: 1.catch只打印异常,不抛出异常 try { 数据库做添加订单表; /; 数据库减少库存; }catch (Exception e){ e.printStackTrace ...
- oracle 清理跟踪文件.trc .trm
trc,trm文件介绍:trc:系统的跟踪文件(trace),当系统启动时或运行过程中出现错误时,系统会自动记录跟踪文件到指定的目录,以便于检查,这些文件需定期维护删除.trm:伴随着.trc文件产生 ...
- linux-vmstat-显示虚拟内存状态
推荐:更多linux 性能监测与优化 关注:linux命令大全 vmstat命令的含义为显示虚拟内存状态(“Viryual Memor Statics”),但是它可以报告关于进程.内存.I/O等系统整 ...
- LearnPython笔记:ex48 代码
赶紧写上 ,一定有人着急要看,啊哈哈哈哈,嘻嘻 哈哈 不枉我起了个大早 利用什么碎片时间啊,真正能深入学习的,是需要大段大段不被打断的时间 1. 完全实现了如下几种输入数据: 2. 遗留:最后一个el ...
- Import CAD geometry in BladeModeler, turbogrid
Table of Contents 1. Import CAD geometry in BladeModeler, turbogrid 1 Import CAD geometry in BladeMo ...
- 【Codeforces 494A】Treasure
[链接] 我是链接,点我呀:) [题意] 让你把"#"用至少一个右括号代替 使得整个括号序列合法 [题解] 首先我们不要考虑井号 考虑最简单的括号序列 并且把左括号看成1,右括号看 ...
- RabbitMQ消息队列阻塞导致服务器宕机
最近工作中存储服务器由于压力太大无法及时消费消息.这个过程中,导致RabbitMQ意外挂掉,无法访问.下面是部分问题分析过程. 麒麟系统服务器分析 1.服务器异常信息: [root@localhost ...