android 应用开发的过程中,我们需要在本地存一些数据,这时候我们就需要使用数据库来帮助我们实行,当然Android的数据存储不仅仅只有数据库的这一种方式,使用sqlite可以帮助我们存储更多的数据,如果少量的数据,我们可以通过shareSharedPreferences 来实现少量数据的存储,下面讲一下关于数据库sqlite
的使用,
package com.example.iclubhelper.sqllite;
import android.content.Context;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteOpenHelper;
public class DBOpenHelper extends SQLiteOpenHelper{
public DBOpenHelper(Context context) {
super(context,"message", null, 1);
// TODO Auto-generated constructor stub
}
@Override
public void onCreate(SQLiteDatabase db) {
/* 当数据库首次被创建的时候将被执行的sql语句,下面解释一下sql语句,创建一个表名为message的数据库,当其不存在的时候自动创建,第一个参数是每条数据的id,然后是自定义的每条记录的名称和记录的数据类型
*/
db.execSQL("CREATE TABLE IF NOT EXISTS message (id integer primary key autoincrement,title varchar(128),content text,time text, nid text)");
}
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
}
}
然后接着就是数据库在activity中的使用,下面是数据库的查询和获取数据库中的内容。
private DBOpenHelper dBOpenHelper;
dBOpenHelper = new DBOpenHelper(this);
//获得可以读取数据的数据库对象
SQLiteDatabase db = dBOpenHelper.getReadableDatabase();
//创建游标对象进行遍历数据库并将其中的数据拿出来
Cursor cursor = db.query("message", null, null, null, null, null, null);
if (null != cursor && cursor.getCount() > 0) {
while (cursor.moveToNext()) {
HashMap<String, Object> map = new HashMap<String, Object>();
for (int i = 0; i < cursor.getColumnCount(); i++) {
map.put("id", cursor.getString(0));
map.put("title", cursor.getString(1));
map.put("content", cursor.getString(2));
}
listDate.add(map);
}
}
//在使用完之后将游标和数据库都进行关闭
cursor.close();
db.close();
下面是实现删除数据库中的内容,将数据库中的内容全部删除,执行数据库的操作的时候最后要将数据库进行关闭
SQLiteDatabase db = dBOpenHelper.getWritableDatabase();
db.delete("message", null, null);
db.close();
根据id或者其它的条件将指定列的数据进行删除,
<pre name="code" class="java">//首先获得可以进行编辑的数据库
SQLiteDatabase db = dBOpenHelper.getWritableDatabase();
/*使用Android自身提供的方法,第一个参数是所要删除数据的数据库的表名,第二个是删除所要依据的列名,然后通过一个字符串数组将所要删除的数据放在里面,这样便可以实现将符合要求的数据删除掉
*/
db.delete("message", "id=?", new String[] { id_ });
db.close();
向数据库中添加数据,contentValues 是用来存储键值的,将其中的值填充后,然后将其插入数据库中
db = new DBOpenHelper(context).getWritableDatabase();
ContentValues values = new ContentValues();
values.put("title", notifiShowRlt.getTitle());
values.put("content", notifiShowRlt.getContent());
db.insert("message", null, values);
db.close();