diuleilaomo通过本文主要向大家介绍了等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com
一、介绍:
SQLite是轻量级嵌入式数据库引擎,它支持 SQL 语言,并且只利用很少的内存就有很好的性能。现在的主流移动设备像Android、iPhone等都使用SQLite作为复杂数据的存储引擎,在我们为移动设备开发应用程序时,也许就要使用到SQLite来存储大量的数据。
二、应用场景:
适用于存储一些复杂的关系型数据。
三、存储步骤:
1.创建一个继承于SQLiteOpenHelper,重载public void onCreate(SQLiteDatabase db)和public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion)方法。数据库第一次被创建时onCreate会被调用,在此函数中适合创建表结构;当手机中数据库版本低于数据库中配置的版本时,会自动调用onUpdate()方法进行数据库升级。
2.通过SQLiteOpenHelper提供的getWritableDatabase();方法获取SQLite的实例,完成增删改查的操作。
四、实例代码
继承于SQLiteOpenHelper的DBHelper类
package com.example.storagedemo.db;
import android.content.Context;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteOpenHelper;
class DBHelper extends SQLiteOpenHelper {
private static final String DATABASE_NAME = "zeng.db";
private static final int DATABASE_VERSION = 1;
DBHelper(Context context) {
super(context, DATABASE_NAME, null, DATABASE_VERSION);
}
@Override
public void onCreate(SQLiteDatabase db) {
db.execSQL("CREATE TABLE IF NOT EXISTS StrorageMsg" +
"(_id INTEGER PRIMARY KEY AUTOINCREMENT,msg VARCHAR)");
}
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
onCreate(db);
}
}
管理数据库增删改查的管理类DBUtil
package com.example.storagedemo.db;
import android.content.ContentValues;
import android.content.Context;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import java.util.List;
public class DBUtil {
public static final String MSG = "msg";
public static final String TABLE_NAME = "StrorageMsg";
private SQLiteDatabase db;
public DBUtil(Context context) {
DBHelper helper = new DBHelper(context);
db = helper.getWritableDatabase();
}
public void insert(List<String> msgs) {
db.beginTransaction();
try {
for (String msg : msgs) {
db.execSQL("INSERT INTO " + TABLE_NAME+ " VALUES(null,?)",
new Object[]{msg});
}
db.setTransactionSuccessful();
} finally {
db.endTransaction();
}
}
public long insert(String msg) {
ContentValues cv = new ContentValues();
cv.put(MSG, msg);
return db.insert(TABLE_NAME, null, cv);
}
public int update(String msg) {
ContentValues cv = new ContentValues();
cv.put("msg", msg);
return db.update(TABLE_NAME, cv, MSG + " = ?", new String[]{msg});
}
public int delete(String msg) {
return db.delete(TABLE_NAME, MSG + "= ?", new String[]{msg});
}
public Cursor query() {
return db.rawQuery("SELECT * FROM " + TABLE_NAME, null);
}
public void closeDB() {
db.close();
}
}