Android学习之SQLite学习
花了2天时间,系统学习了下Android开发过程中使用的轻量级数据库SQLite的使用。
并掌握其增,删,该,查的基本数据库操作。
首先要使用SQLite数据库,须要通过Android系统提供的SQLiteOpenHelper的帮助类,通过这个类我们能够得到一个SQLite数据库。因此我们须要创建一个类继承SQLiteOpenHelper这个类,然后实现它的onCreate()和update()方法。 我在我的welthy.myDB包中所创建的基础帮助类的类 仅仅实现onCreate()和update()方法。
详细的增,删,改,查操作我另外创建了一个类实现。
所以这里的数据库初始化部分也放在了 操作实现的类中。 对于实现帮助类的代码例如以下:
实现了帮助类后 我便能够创建数据库,并对数据库进行一系列的操作。
首先进行数据库的初始化部分:
在进行初始化之前首先要得到SQLiteDatabase的对象和实现SQLiteOpenHelper帮助类的对象(即:DBmanager)。
然后再数据库操作实现类DBways类的构造函数中创建数据库。
假设不过dbHelper=new DBmanager(context,name);的话是无法得到数据库的。还有通过dbHelper.getWriteable()【须要对数据库编辑时】或者dbHelper.getReadable();【只读取数据库时】。通过这2个函数才干够得到一个数据库。然后通过ContentValues类给数据库的内容进行初始化【也能够不初始化。此时就是一个空数据库】。然后调用insert("表名",null,values)将初始化的值加入进数据库。
初始化后,首先说明下加入数据操作。
这里我定义的函数为:insert(String Pname,int Pid);详细实现内容和初始化加入数据时一样都是调用db【即 SQLiteDatabase的对象】的insert(。。。)函数。
详细代码例如以下:
主函数中直接调用就能够。
然后说明删除数据操作。
这里我定义的函数有2个一个是依据keyword删除。一个是删除数据库全部数据。调用的是db.delete("表名","删除条件","删除条件中的參数【即删除条件中?
号的值】");
当中依据keyword删除的是deleteKey(String name);实现代码例如以下:
删除全部数据就是删除条件为null的情况。
实现代码例如以下:
接着,说明下查询操作。
这里利用Cursor类来搜集查询结果集。这里调用的是rawQuery函数,这个函数是能够直接通过SQL语句进行查找操作。然后结果放入Cursor的对象cursor中。
当然,也能够使用query()函数,这个函数不须要熟悉SQL语句的操作。但相同返回的是cursor类型值。 实现代码例如以下:
这里得到cursor结果集之后,则能够通过Cursor类的方法对结果进行查询,首先将cursor游标放在第一行cursor.moveToFirst()。然后进入一个循环。仅仅要下一行还有数据,则通过cursor.getString(字段下标【0開始】)以字符串的形式得到数据。
直到下一行没有数据为止。
最后,说明下改动操作。
这里我相同定义了2个函数,由于我的字段就仅仅有name和 id 2个。
所以,能够依据一个字段改动同一行的还有一个字段值。
相同是通过ContentValues类得到改动后的数据,然后通过db.update("表名",更新的值,更新条件,更新条件參数)。
来改动数据。
首先是改动name字段的函数editName(String name,int id)。
详细实现代码例如以下:
然后是改动id字段的函数editId(String name,int id)。
详细实现代码例如以下:
详细的4种操作如上所述。如有疑问,欢迎探讨。
Android学习之SQLite学习的更多相关文章
- 七、Android学习第六天——SQLite与文件下载(转)
(转自:http://wenku.baidu.com/view/af39b3164431b90d6c85c72f.html) 七.Android学习第六天——SQLite与文件下载 SQLite SQ ...
- Android中的SQLite使用学习
Android中的SQLite使用学习 SQLite是非常流行的嵌入式关系型数据库,轻载, 速度快,而且是开源.在Android中,runtime提供SQLite,所以我们可以使用SQLite,而且是 ...
- Android开发系列之学习路线图
通过前面的3篇博客已经简单的介绍了Android开发的过程并写了一个简单的demo,了解了Android开发的环境以及一些背景知识. 接下来这篇博客不打算继续学习Android开发的细节,先停一下,明 ...
- 20172327 2018-2019-1 《第一行代码Android》第一章学习总结
学号 2018-2019-1 <第一行代码Android>第一章学习总结 教材学习内容总结 - Android系统架构: 1.Linux内核层 Android系统是基于Linux内核的,这 ...
- SQLite 学习笔记
SQLite 学习笔记. 一.SQLite 安装 访问http://www.sqlite.org/download.html下载对应的文件. 1.在 Windows 上安装 SQLite. ...
- SQlite 学习资料
很有用的开源跨平台数据库,可以作为客户端的小型内存数据库使用,据说它有N多用户(Nokia's Symbian,Mozilla,Abobe,Google,阿里旺旺,飞信,Chrome,FireFo ...
- Android 开源项目及其学习
Android 系统研究:http://blog.csdn.net/luoshengyang/article/details/8923485 Android 腾讯技术人员博客 http://hukai ...
- SQLite学习笔记(七)&&事务处理
说到事务一定会提到ACID,所谓事务的原子性,一致性,隔离性和持久性.对于一个数据库而言,通常通过并发控制和故障恢复手段来保证事务在正常和异常情况下的ACID特性.sqlite也不例外,虽然简单,依然 ...
- sqlite学习
一鼓作气,今天继续学习了sqlite数据库在Xcode上的一些操作,主要是通过用oc代码进行salite表格的创建,删除,修改:以及对现有的表格数据进行增,删,改,查.虽然有点累,但是收获不小,感觉很 ...
随机推荐
- linux之SQL语句简明教程---ALTER TABLE
在表格被建立在资料库中后,我们常常会发现,这个表格的结构需要有所改变.常见的改变如下: 加一个栏位 删去一个栏位 改变栏位名称 改变栏位的资料种类 以上列出的改变并不是所有可能的改变.ALTER TA ...
- uva10815 by sixleaves
题目很简单.其实stringstream就的用法和iosteam差不多,所以学习起来是很简单的.stringstream类里面有一个string缓存,str()和str(string)成员函数.前者用 ...
- C Deepin指针
L-value -->标识了一个可以存储结果值的内存存储地址--指针变量 or 普通内存变量; R-value -->数值;
- iOS 动态加入button
按现有的button之后自己主动创造一个新的button,并为新button加入事件,因此,当您单击弹出提示框. 于viewcontroller.h添加 @property (weak, nonato ...
- nginx添加需要代理的域名 配置
dap.cns.360buy.com为需要nginx代理的域名,被代理的端口为:8089,配置需要在${nginx_home}/conf/nginx.conf的文件中加入如下配置即可 upstream ...
- 使用Devexpress中的CharControl控件,需要控制AxisY轴的显示范围,需要使用该控件的BoundDataChanged事件
一.控制ChartControl的Y轴范围 使用Devexpress中的CharControl控件,需要控制AxisY轴的显示范围,需要使用该控件的BoundDataChanged事件,具体代码如下: ...
- 详解Activity的四种启动模式
在Android中每个界面都是一个Activity,切换界面操作其实是多个不同Activity之间的实例化操作.在Android中Activity的启动模式决定了Activity的启动运行方式. Ac ...
- SQL Server插入中文数据后出现乱码
今天在做项目的过程中遇到如标题的问题,情况如下图: 数据库使用的是SQL Server2012版本,创建表的脚本如下: CREATE TABLE [dbo].[Type]( [TypeId] INT ...
- dom操作例子
<!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <m ...
- 生成HFile文件后倒入数据出现Caused by: java.lang.ClassNotFoundException: org.apache.hadoop.hbase.filter.Filter
数据导入的时候出现: at java.lang.Class.getDeclaredMethods0(Native Method) at java.lang.Class.privateGetDeclar ...