首页 > 代码库 > Android SQLite数据库操作
Android SQLite数据库操作
更多内容欢迎访问我的个人网站:www.qingshuimonk.com查看
SQLite是一种轻量级关系型数据库,目前支持NULL,INTEGER,REAL(浮点),TEXT(字符串文本),BLOB(二进制文本)这五种类型。
建立的数据库文件位于/data/data/package-name/databases目录下。
在Eclipse中可以通过File Explorer访问文件。
对SQLite数据库操作的步骤:
1.建立SQLiteOpenHelper类,用于初始化、升级数据库。
1 package com.qingshuimonk.radarmonitor; 2 3 import android.content.Context; 4 import android.database.sqlite.SQLiteDatabase; 5 import android.database.sqlite.SQLiteDatabase.CursorFactory; 6 import android.database.sqlite.SQLiteOpenHelper; 7 8 public class MySQLiteHelper extends SQLiteOpenHelper{ 9 10 public MySQLiteHelper(Context context, String name, CursorFactory factory, int version){ 11 super(context, name, factory, version); 12 } 13 14 @Override 15 public void onCreate(SQLiteDatabase db) { 16 // TODO Auto-generated method stub 17 db.execSQL("create table datatable(name text, value real)"); 18 } 19 20 @Override 21 // 数据库版本不一致时,磁盘上的数据库版本需要升级到当前版本时调用 22 public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) { 23 // TODO Auto-generated method stub 24 // 删除旧表,创建新表 25 //db.execSQL("DROP TABLE IF IT EXISTS " + DATABASE_TABLE); 26 //onCreate(db); 27 } 28 29 30 31 }
其中
db.execSQL("create table datatable(name text, value real)");
指令用于创建数据库及表格,数据库名称为datatable,表格中内容有一个字符串文本name,一个浮点数字value。一般在使用中还会定义一个
_id integer primary key autoincrement字段
用于表示表格的行号。
2.创建或打开数据库
创建变量:
1 public MySQLiteHelper mySQLiteHelper; 2 public SQLiteDatabase datadb;
创建数据库:
1 // 创建数据库 2 mySQLiteHelper = new MySQLiteHelper(RegionActivity.this, "datadb", null, 1); 3 datadb = mySQLiteHelper.getReadableDatabase();
MySQLiteHelper的形参分别为:context,数据库名称,工厂(默认为null),版本
3.数据库的基本操作:
创建:datadb.execSQL("create table mytable(_id integer primary key autoincrement, name text, value real)");
关闭:datadb.close;
增加:
ContentValues cv = new ContentValues();
cv.put("_id",1);
cv.put("name","length");
cv.put("value",2);
datadb.inset("mytable",null,cv);
查询:
需要建立一个指向数据表的指针cursor,然后通过指针取得列的索引index,将index传入相应的方法,取得想要的数据。
Cursor cursor = datadb.query("mytable", new String[]{"_id","name","value"},null,null,null,null,null);
while(cursor.moveToNext()){
int idindex = cursor.getColumnIndex("_id");
int id = cursor.getInt(idindex);
int nameindex = cursor.getColumnIndex("name");
String name = cursor.getString(nameindex);
int valueindex = cursor.getColumnIndex("value");
float value = http://www.mamicode.com/cursor.getFloat(valueindex);
}
cursor的一些相应方法还有:
moveToNext();
moveToPrevious();
moveToFirst();
moveToLast();
moveToPosition();
getCount();
getPosition();
getColumnIndexOrThrow();
getColumnName();
getColumnNames();
各方法使用详情参见Android Developers。
修改:
String updateString = "update mytable set name=‘length‘, value=http://www.mamicode.com/‘12‘ where ";
datadb.execSQL(updateString);
删除:
String deleteString="delete from mytable where _id=1";
datadb.execSQL(deleteString);