Android Sqlite的介绍及使用
Sqlite简介
Sqlite数据库是一种轻量级数据库,它具备跨平台,多语言操作等优点,它广泛用于包括浏览器、IOS,Android以及一些便携需求的小型web应用系统。它具备占用资源低,处理速度快等优点。
如何创建一个数据库?
public class DBHelper extends SQLiteOpenHelper {
private static final String TAG = "DatabaseHelper";
private static final String DB_NAME = "test_db";//数据库名字
public static String TABLE_NAME = "person";// 表名
public static String FIELD_ID = "id";// 列名
public static String FIELD_NAME= "name";// 列名
private static final int DB_VERSION = 1; // 数据库版本
public DBHelper(Context context) {
super(context, DB_NAME, null, DB_VERSION);
}
/**
* 创建数据库
* @param db
*/
@Override
public void onCreate(SQLiteDatabase db) {
//创建表
String sql = "CREATE TABLE " + TABLE_NAME + "(" + FIELD_ID + " integer primary key autoincrement , " + FIELD_NAME + " text not null);";
try {
db.execSQL(sql);
} catch (SQLException e) {
Log.e(TAG, "onCreate " + TABLE_NAME + "Error" + e.toString());
return;
}
}
/**
* 数据库升级
* @param db
* @param oldVersion
* @param newVersion
*/
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
}
}
如何创建和打开一个可以操作的数据库?
//获取可写数据库
SQLiteDatabase db = dbHelper.getWritableDatabase();
//获取可读数据库
SQLiteDatabase db = dbHelper.getReadableDatabase();
如何添加一个数据?
//获取写数据库
SQLiteDatabase db = dbHelper.getWritableDatabase();
//生成要修改或者插入的键值
ContentValues cv = new ContentValues();
cv.put(DBHelper.FIELD_NAME, name);
// insert 操作
db.insert(DBHelper.TABLE_NAME, null, cv);
//关闭数据库
db.close();
如何删除一条数据?
//生成条件语句
StringBuffer whereBuffer = new StringBuffer();
whereBuffer.append(DBHelper.FIELD_NAME).append(" = ").append("'").append(name).append("'");
//获取写数据库
SQLiteDatabase db = dbHelper.getWritableDatabase();
// delete 操作
db.delete(DBHelper.TABLE_NAME, whereBuffer.toString(), null);
//关闭数据库
db.close();
如何更新一条数据?
//生成条件语句
StringBuffer whereBuffer = new StringBuffer();
whereBuffer.append(DBHelper.FIELD_NAME).append(" = ").append("'").append(name).append("'");
//生成要修改或者插入的键值
ContentValues cv = new ContentValues();
cv.put(DBHelper.FIELD_NAME, name+name);
//获取写数据库
SQLiteDatabase db = dbHelper.getWritableDatabase();
// update 操作
db.update(DBHelper.TABLE_NAME, cv, whereBuffer.toString(), null);
//关闭数据库
db.close();
如何查询数据?
//生成条件语句
StringBuffer whereBuffer = new StringBuffer();
whereBuffer.append(DBHelper.FIELD_NAME).append(" = ").append("'").append(name).append("'");
//指定要查询的是哪几列数据
String[] columns = {DBHelper.FIELD_NAME};
//获取可读数据库
SQLiteDatabase db = dbHelper.getReadableDatabase();
//查询数据库
Cursor cursor = null;
try {
cursor = db.query(DBHelper.TABLE_NAME, columns, whereBuffer.toString(), null, null, null, null);
if (cursor != null && cursor.getCount() > 0) {
int count = cursor.getColumnCount();
String columName = cursor.getColumnName(0);
String tname = cursor.getString(0);
Log.e(TAG, "count = " + count + " columName = " + columName + " name = " +tname);
cursor.moveToFirst();
}
if (cursor != null) {
cursor.close();
}
} catch (SQLException e) {
Log.e(TAG, "queryDatas" + e.toString());
}
//关闭数据库
db.close();