android中sqlite的使用

来源:互联网 发布:淘宝上收货地址怎么改 编辑:程序博客网 时间:2024/06/01 07:19

1. 在android中当操作SQLite数据库需要得到一个SQLiteOpenHelper对象,而SQLiteOpenHelper是一个抽象类,用户需要继承这个类,并实现该类中的一些方法。

 

2. 创建一个SQLiteTest继承 SQLiteOpenHelper类,必须覆写下面2个方法和创建一个构造函数(可带多个参数)

onCreate(SQLiteDatabase db)创建数据库时调用,在数据库第一次创建的时候会调用这个方法,一般我们在这个方法里边创建数据库表。

onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion)版本更新时调用,当数据库需要修改的时候,Android系统会主动的调用这个方法。一般我们在这个方法里边删除数据库表,并建立新的数据库表,当然是否还需要做其他的操作,完全取决于应用程序的需求。

构造函数如下:

public SQLiteTest (Context context, String name, CursorFactory factory,int version) {

super(context, name, factory, version);

}

 

3. 继承SQLiteOpenHelper之后就拥有了以下两个方法:

getReadableDatabase()创建或打开一个只读数据库

getWritableDatabase()创建或打开一个读写数据库,这个方法经常被调用。每次在操作数据库增加,删除,修改,查询的时候都需要调用这个方法。

 

4. 执行query查询方法后,返回的是一个Cursor游标,游标最开始指向的是记录集合中第一行的上一行,因此首先需要先调用cursor.next()将游标移动到记录集合的第一行,接着再获取数据即可。

 

5.  SQLiteDatabase还专门提供了对应于添加、删除、更新、查询的操作方法: insert()delete()update()query() 。这些方法实际上是给那些不太了解SQL语法的人使用的,对于熟悉SQL语法的程序员而言,直接使用execSQL()rawQuery()方法执行SQL语句就能完成数据的添加、删除、更新、查询操作。execSQL()方法可以执行insertdeleteupdateCREATE TABLE之类有更改行为的SQL语句rawQuery()方法用于执行select语句。

 

//创建一个可读写的数据库

SQLiteDatabase db = mOpenHelper.getWritableDatabase();

数据的添删改查分别可以通过2种途径来实现

一)数据的增加
1)使用insert方法

ContentValues cv = new ContentValues();//实例化一个ContentValues用来装载待插入的数据cv.put("username","Jack Johnson");//添加用户名

cv.put("password","iLovePopMusic"); //添加密码

db.insert("user",null,cv);//执行插入操作

2使用execSQL方式来实现

String sql = "insert into user(username,password) values ('Jack Johnson','iLovePopMuisc');//插入操作的SQL语句

db.execSQL(sql);//执行SQL语句

二)数据的删除

1)使用delete方法

String whereClause = "username=?";//删除的条件

String[] whereArgs = {"Jack Johnson"};//删除的条件参数

db.delete("user",whereClause,whereArgs);//执行删除

2使用execSQL方式的实现

String sql = "delete from user where username='Jack Johnson'";//删除操作的SQL语句

db.execSQL(sql);//执行删除操作

三)数据修改

1ContentValues cv = new ContentValues();//实例化ContentValues

cv.put("password","iHatePopMusic");//添加要更改的字段及内容

String whereClause = "username=?";//修改条件

String[] whereArgs = {"Jack Johnson"};//修改条件的参数

db.update("user",cv,whereClause,whereArgs);//执行修改

2String sql = "update user set password = 'iHatePopMusic' where username='Jack Johnson'";//修改的SQL语句

db.execSQL(sql);//执行修改

四)数据查询

1数据查询相对前面几种方法就复杂一些了,因为查询会带有很多条件
通过query实现查询的
public Cursor query(String table, String[] columns, String selection, String[] selectionArgs, String groupBy, String having, String orderBy, String limit)
各参数说明:

· table:表名称

· colums:列名称数组

· selection:条件子句,相当于where

· selectionArgs:条件语句的参数数组

· groupBy:分组

· having:分组条件

· orderBy:排序类

· limit:分页查询的限制

· Cursor:返回值,相当于结果集ResultSet

2String sql = "select * from user" ;

rawQuery(sql);

 

6.OnItemLongClickListener长按事件监听

0 0
原创粉丝点击