一、SQLite
要使用SQLite,要创建一个继承自SQLiteOpenHelper的类,实现两个回调方法和一个构造方法,在构造方法中,我们需要传递四个值
(1)、上下文;(2)、数据库名称(.db);(3)null;(4)版本号,整型的数据,不能用0
两个回调方法:
(1)、public void onCreate(SQLiteDatabase db)
这个方法是在数据库被创建后,程序会调用此方法在数据库中创建一张表,用一个字符串记录sql语法,然后用db.execSQL();来执行即可
(2)、public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion)这个方法是用来升级数据库的方法,升级原理是删除再重新创建。
数据库的增删查改:
数据库的增删查改在安卓中都可以用sql语句来执行,就是把sql语句存储在一个String类型的变量中,通过 数据库.execSQL(**);来执行;
还有通过安卓中现有的方法来执行:
增删查改具体使用方法用下面视力来说明:
import android.content.ContentValues;
import android.content.Context;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteOpenHelper;
public class SQLiteDB extends SQLiteOpenHelper {
final static String SQLITE_NAME = "test.db";
final static String TABLE_NAME = "demo";
final static int VERSION = 1;
final static String USERNAME = "username";
final static String PASSWORD = "password";
final static String ID = "id";
public SQLiteDB(Context context) {
super(context, SQLITE_NAME, null, VERSION);
}
@Override
public void onCreate(SQLiteDatabase db) {
String sql = "CREATE TABLE " + TABLE_NAME + " (" + ID
+ " INTEGER primary key autoincrement, " + USERNAME + " text, "
+ PASSWORD + " text);";
db.execSQL(sql);
}
public Cursor select() {
SQLiteDatabase db = this.getReadableDatabase();
Cursor cursor = db
.query(TABLE_NAME, null, null, null, null, null, null);
return cursor;
}
public long insert(String username, String password) {
SQLiteDatabase db = this.getWritableDatabase();
ContentValues cv = new ContentValues();
cv.put(USERNAME, username);
cv.put(PASSWORD, password);
long row = db.insert(TABLE_NAME, null, cv);
return row;
}
public void delete(int id) {
SQLiteDatabase db = getWritableDatabase();
String where = ID + "= ?";
String[] whereValue = { Integer.toString(id) };
db.delete(TABLE_NAME, where, whereValue);
}
public void update(int id, String username, String password) {
SQLiteDatabase db = this.getWritableDatabase();
String where = ID + " = ?";
String[] whereValue = { Integer.toString(id) };
ContentValues cv = new ContentValues();
cv.put(USERNAME, username);
cv.put(PASSWORD, password);
// 参数是表名称,参数是更行列ContentValues类型的键值对(Map),参数是更新条件(where字句),参数是更新条件数组
db.update(TABLE_NAME, cv, where, whereValue);
}
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
String sql = "DROP TABLE IF EXISTS " + TABLE_NAME;
db.execSQL(sql);
onCreate(db);
}
}