第六周Android学习笔记
2016-04-11 07:30
337 查看
重点记录一下SQLite。数据库最基本的操作就是“增删改查”,外加一个创建“表”这五项操作。
在Android里面,创建表的工作是通过SQLiteOpenHelper类来实现的。在这个类里主要有两个方法,onCreate()和onUpgrade(),可以用onCreate方法中的参数db来直接执行SQL命令。
由此就可以把一张表创建成功。
在做四个基本操作的过程中,
增:
在Android中,增加一条新的数据会用到ContentValue类,这个类的作用是把数据进行打包,利用类里的put()方法,将所需要的数据先保存在一个对象里,再将这个对象传给专门用于拼接SQL命令行的SQLiteDatabase类。
删:
删除一条SQL数据库中所用到的命令是
在Android中为了拼接这一条命令,为用到SQLiteDatabase类的delete(表名,属性名,数据元素)方法,这个方法有三个参数,三个参数中,表名和属性名是用String类型,数据元素是一个String[]类型,如下面的例子:
改:
其实就是更新一条数据的某一个数据项。假设一个条数据有三个属性也就是数据表中的列标,(username, age, gender),然后有一条数据是(小明,20,男),这个时候要把小明的年龄改到22岁,就要用到更新的操作。
和“删除”操作相似的地方在于,update()方法也是通过属性和对应的数据元素来确定某一条数据,然后再更改这一条数据所要修改的某数据项。
查:
一条标准的SQL查询命令如下所示:
以上是最基本的一个查找的方式,select 命令还会用到很多having, group by, order by等关键字,具体的讲解可以看看W3School里的SQL教程。http://www.w3school.com.cn/sql/sql_orderby.asp
select命令执行完成后,返回的结果又可以看成是数据表的子表,或者是数据表的一部份。
在Android里面,查找的工作是由SQLiteDatebase.query()方法来完成。这个方法共七个参数,其中包括并且对应了所有执行select命令所需要的参数。并且返回的结果是一个叫做Cursor类的对象。Cursor类的对象也可以简单的理解成一个上下滑动的小标计,这个小标所指的位置就是某一条数据表的子表的数据,(这里说的子表也就是查询返回的结果),并且提供了一套处理数据的方法。
我们查找一张表的某条数据的某一个属性的值的时候,会先找某一行,再确定某一列,然后把数据读出来,Cursor也是使用同样的办法来读取数据表中的数据。
以上就是SQLite在Android中的最基本的几个操作。
在Android里面,创建表的工作是通过SQLiteOpenHelper类来实现的。在这个类里主要有两个方法,onCreate()和onUpgrade(),可以用onCreate方法中的参数db来直接执行SQL命令。
public void onCreate(SQLiteDatabase db) { db.execSQL("create table " + USER + "(" + USERNAME + " varchar(20) not null, " + PASSWORD + " varchar(60) not null, " + ISLOGIN + " varchar(5) not null, " + TIMES + " int);"); }
由此就可以把一张表创建成功。
在做四个基本操作的过程中,
增:
在Android中,增加一条新的数据会用到ContentValue类,这个类的作用是把数据进行打包,利用类里的put()方法,将所需要的数据先保存在一个对象里,再将这个对象传给专门用于拼接SQL命令行的SQLiteDatabase类。
ContentValues contentValues = new ContentValues(); contentValues.put(DatabaseHelper.USERNAME, username); contentValues.put(DatabaseHelper.PASSWORD, password); contentValues.put(DatabaseHelper.ISLOGIN, isLogin); contentValues.put(DatabaseHelper.TIMES, times); mSqLiteDatabase.insert(DatabaseHelper.USER, null, contentValues);
删:
删除一条SQL数据库中所用到的命令是
delete from 表名 where 属性名(例如username)= XXX;
在Android中为了拼接这一条命令,为用到SQLiteDatabase类的delete(表名,属性名,数据元素)方法,这个方法有三个参数,三个参数中,表名和属性名是用String类型,数据元素是一个String[]类型,如下面的例子:
String whereClauseString = "username=?"; String[] whereArgsString = {"小明"}; mSqLiteDatabase.delete(DatabaseHelper.USER, whereClauseString, whereArgsString);
改:
其实就是更新一条数据的某一个数据项。假设一个条数据有三个属性也就是数据表中的列标,(username, age, gender),然后有一条数据是(小明,20,男),这个时候要把小明的年龄改到22岁,就要用到更新的操作。
ContentValues contentValues = new ContentValues(); contentValues.put(DatabaseHelper.AGE, "22"); String whereClauseString = "username=?"; String[] whereArgsString = {"小明"}; mSqLiteDatabase.update(DatabaseHelper.USER, contentValues, whereClauseString, whereArgsString);
和“删除”操作相似的地方在于,update()方法也是通过属性和对应的数据元素来确定某一条数据,然后再更改这一条数据所要修改的某数据项。
查:
一条标准的SQL查询命令如下所示:
select 要显示的属性名称1,2,3或用 * 表示所有的属性 from 表名 where 属性x=(<= >= < >); //例如在所有数据中找出并只显示小明的年龄(age)的数据 select age from user where username='小明';
以上是最基本的一个查找的方式,select 命令还会用到很多having, group by, order by等关键字,具体的讲解可以看看W3School里的SQL教程。http://www.w3school.com.cn/sql/sql_orderby.asp
select命令执行完成后,返回的结果又可以看成是数据表的子表,或者是数据表的一部份。
在Android里面,查找的工作是由SQLiteDatebase.query()方法来完成。这个方法共七个参数,其中包括并且对应了所有执行select命令所需要的参数。并且返回的结果是一个叫做Cursor类的对象。Cursor类的对象也可以简单的理解成一个上下滑动的小标计,这个小标所指的位置就是某一条数据表的子表的数据,(这里说的子表也就是查询返回的结果),并且提供了一套处理数据的方法。
//查找出user数据表中的所有数据 Cursor cursor = mSqliteDatabse.query("user",null,null,null,null,null,null); //后面参数的具体意思可以在Android Studio中查看具体的内容 //然后可以通过Cursor的方法对来数据进行处理 cursor.getCount();//确定数据有多少条 cursor.moveToFirst();//将小标指到第一条数据 cursor.moveToNext();//将小标指到下一条数据
我们查找一张表的某条数据的某一个属性的值的时候,会先找某一行,再确定某一列,然后把数据读出来,Cursor也是使用同样的办法来读取数据表中的数据。
cursor.getColumIndexOrThrow("用户名"); //就会将小标所指的这一条数据中,“用户名”属性下的值读取出来
以上就是SQLite在Android中的最基本的几个操作。
相关文章推荐
- Android开发之裁切(拍照+相册)图像并设置头像小结
- Android获取NavigationView header中的控件
- android 闪屏页—>ViewPager引导页—>主页面
- Android am命令使用
- ANDROID开发之SQLite详解
- 在Android中使用HandlerThread创建线程
- Android material Design 之CoordinatorLayout详解
- Android实现通过手机找回密码
- 安卓中@id与@+id的区别与实际应用中的@id报错问题
- android 电话状态监听(来电和去电)实现代码
- Android视频播放: 写在开头的话(一)
- Android在使用AudioFocus后,当短暂失去Focus要怎么重新获得
- Android基础——EditText不弹出软键盘解决办法
- Android触摸事件(五)-CropBitmapActivity关于裁剪工具的使用
- Android触摸事件(四)-CropView裁剪工具的使用
- 【Android进阶】Android中的动画详解系列 Activity之间切换动画 完美方案
- android listView滑动时控制顶部控件 带动画
- Android开发 详解开源项目CircleImageView
- Android各版本最新分布数据
- ViewPager+Fragment组成滑动且带有光标