您的位置:首页 > 移动开发 > Android开发

第六周Android学习笔记

2016-04-11 07:30 337 查看
重点记录一下SQLite。数据库最基本的操作就是“增删改查”,外加一个创建“表”这五项操作。

在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中的最基本的几个操作。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: