个人认为数据库操作还是很容易,以前做过服务端开发。
遇到问题印象最深的一次:排序,NND ,我竟然将关键字:order by + 列名 一起作为参数传进去,总是报错。
记住:这些sql关键字是不需要我们写的,sdk早就自己写好了。
public static final String KEY_NAME = "username"; // 数据表字段
public static final String KEY_PWD = "userpwd"; // 数据表字段
private DatabaseHelper mDbHelper; // SQLiteOpenHelper实例对象
private SQLiteDatabase mDb; // 数据库实例对象
// 数据表创建语句
private static final String DATABASE_CREATE = "create table notes (_id integer primary key autoincrement, "
+ KEY_NAME + " text not null, " + KEY_PWD + " text not null, " + KEY_LEARNPWD + " text not null, "
+ KEY_NEXTLOGIN + " text not null, " + KEY_AUTO + " text not null);";
private static final String DATABASE_NAME = "data"; // 数据库名
private static final String DATABASE_TABLE = "notes"; // 数据库表名
// 数据库辅助类
private class DatabaseHelper extends SQLiteOpenHelper {
DatabaseHelper(Context context) {
super(context, DATABASE_NAME, null, DATABASE_VERSION);
}
@Override
public void onCreate(SQLiteDatabase db) {
db.execSQL(DATABASE_CREATE);
}
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
db.execSQL("DROP TABLE IF EXISTS notes");
onCreate(db);
}
}
//获取
public Cursor fetchAutoLoginUserData() throws SQLException {
Cursor mCursor = mDb.query(true, DATABASE_TABLE, new String[] {
KEY_ROWID, KEY_NAME, KEY_PWD }, KEY_AUTO + "='" + AUTO_LOGIN_TRUE + "'",
null, null, null, null, null);
if (mCursor != null) {
mCursor.moveToFirst();
}
return mCursor;
}
public boolean updateUserData(String name, String pwd, String learnpwd,
String autologin) {
ContentValues args = new ContentValues();
args.put(KEY_PWD, "");
return mDb.update(DATABASE_TABLE, args, KEY_NAME + "='" + name + "'",
null) > 0;
}
public boolean deleteUserData(String name) {
return mDb.delete(DATABASE_TABLE, KEY_NAME + "='" + name + "'", null) > 0;
}
public boolean insertUserData(String name, String pwd, String learnpwd,
String autologin) {
ContentValues initialValues = new ContentValues();
initialValues.put(KEY_NAME, name);
return mDb.insert(DATABASE_TABLE, null, initialValues) > 0;
}