android 中,关于特定的方法操作数据库。

来源:互联网 发布:怎么搜索淘宝达人账号 编辑:程序博客网 时间:2024/05/18 22:41

android中关于特定的方法操作数据库,写的不好的话。望大家见谅,希望对刚学习android的同学一点帮助,也是给自己的一点鼓励。

 

首先要知道android给了我们那些特定的方法操作sqlite数据库

一前大家操作数据数据库都是使用标准的sql语句,:比如:select * from studnets;这样的标准sql语句,而android提供的特定的sql语句又有哪些呢?

long SQLiteDatabase.insert(String table,String nullColumnHack,ContentValues values);

这个方法是实现添加功能的。如果添加成功,返回添加记录的行号,否则返回-1;

参数table为指定数据要添加到的表名

参数nullColumenHack用于指定空值字段的名称或强行插入null的值的数据列的列明,主要是用来构造合法的SQL语句,一般来说这个参数指定的列名不应该为主键或值为空的列名,强行插入null时会引发异常

 

参数values指要添加到表中的各个字段的数据值,如果values不为null并且元素的个数大于0,可以把第二个参数设为null,

不管第三个参数values是否包含数据,执行insert()方法都必然会添加一条数据,如果values为空,会添加一条除主键外其他字段都为空null的记录,

 

 

insert()方法的内部实际上是通过构造insert语句完成添加的,因此他声称的sql语句的形式总是如下:

insert    into  <表名>(key1,key2,key3,...)values(values1,values2,values3,....);

 

此时如果第三个参数Values为null,或者key-value对的个数为0,则生成的sql语句为:

inset   into  <表名>()values();

 

在添加数据时,insert方法的values参数的类型是ContentValues,这个类型和java中的map非常相似,都可以用来存储一些键值对,但他存储的键值对中的键是一个String类型,而值可以是任意基本类型,

 

ContentValues提供了存储数据对应的put(String key,xxx value)和getAsXXX(String key)的方法,其中key为字段名称,value为字段名称,xxx指的是各种常用的数据类型,如String,Integer....等。

查询语句:

 

Cursor   SQLiteDatabase.query(String table,String [] columns,String selection,String[] selectionArgs,String groupBy,Stringhaving,String orderBy,String limit);

该方法专门用来查询,实际上就是把select拆分成若干个部分,然后作为方法的输入参数

table:表名

columns:要查询出来的列明,相当select语句,select关键字后的部分。

selection:查询条件子句。相当select语句where关键字后面的部分,可以用占位符“?”

selectionArgs:对应于selection语句中的占位符的值,值在数组中的位置顺序与占位符在语句中的位置顺序必须一致,否则就会有异常

groupBy:定义查询出来的数据是否分组。相当于select语句,group by 关键字后的部分。如果为null,说明不需要分组、

having:相当于select语句having关键字后面部分。

order By:相当于select语句order by关键字后面的部分,如果为null,说明不需要排序。

limint:指定偏移量和获取的记录数,相当于select语句imit关键字后面部分。

 

删除数据方法:

int SQLiteDatabase.delete(String table,String whereClause,String[] whereArgs);

该方法专门用于删除指定的数据,返回受此delete语句影响的行数

table:表名:

whereClause:满足该条件的记录会被删除,他相当于sql语句中的where部分,

whereArgs:对应于wherecaluse语句中占位符的值,值在数组中的位置与占位符在语句中的位置必须一致,否则就会抱异常。

 

 

修改数据方法:

int  SQLiteDatabase.update(String table,ContentValues values,String WhereClause,String[] whereArgs);

该方法专门用于删除指定的数据,返回受此update语句影响的行数:

table:想要更新数据的表名

values:想要更新的数据:

whereClause:满足该子句的记录将会被更新。

whereArgs:用于为whereClause自己传入参数.

 

 

下面用一个实例给大家演示一下具体用法。

先看截图:

首先是主界面:

 

根据指定id查询:

 

全部查询

 

只是演示特定语法的用法。基本点非空验证,什么都没写。代码优化的也不够完全,大家多多包涵。

下面试代码:

首先是项目的整体布局。

main.xml

ListView用到到布局,listview

对话框用到的布局,

 

 

students类代码:

 

Dbopenhelper类代码如下,此类用于创建数据库。

 

StudentService类代码:为业务逻辑类。完成CRUD操作。

 

Activity类。代码:

 

具体的实现步骤就是这样。希望对有需要的同学有点帮助。写的不好的话。望大家多多包涵。

 

 

 

 

原创粉丝点击