Android下使用数据库练习CURD
1》先了解下SQLiteOpenHelper
我们首先想到帮助类,来帮助我们来创建数据库,和修改数据库,以前我们学习jdbc、c3p0都是有帮助类来或者有个工厂,帮我们产生的创建连接,和关闭连接。onCreate(SQLiteDatabase db)、onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion).......
帮助类提供了我们操作数据库的资本:getReadableDatabase()\getWritableDatabase();
Context :上下文对象 String name:数据库名字 CursorFactory factory: int version:版本号
public SQLiteOpenHelper(Context context, String name, CursorFactory factory, int version) {
this(context, name, factory, version, new DefaultDatabaseErrorHandler());
}
2》CURD
/**
* 查找是否存在
*/
public boolean find(String name) {
boolean result = false;
SQLiteDatabase db = helper.getReadableDatabase();
// 参数解析 table(数据库表名) columns(查询出来的列名,如果传入null,返回所有列的信息)
// selection()查詢條件
// selectionArgs()选择条件插入的参数
// groupBy() having()
Cursor cursor = db.query("person", null, "name=?",
new String[] { name }, null, null, null);
if (cursor.moveToNext()) {
result = true;
}
cursor.close();
db.close();
return result;
}
// /**
// * 添加一条记录,如果想去判断执行结果 ,就必须再执行一次查询的操作。
// */
// public boolean add(String name, String phone, int account) {
// if (find(name)) {
// return false;
// }
// SQLiteDatabase db = helper.getWritableDatabase();
// ContentValues values = new ContentValues();
// values.put("account", account);
// values.put("phone", phone);
// values.put("name", name);
// long result = db.insert("person", null, values);
// if (result == -1) {
// return false;
// } else {
// return true;
// }
// }
/**
* 添加一条记录 如果想去判断执行的结果 ,就必须要再执行一次查询的操作.
*/
public boolean add(String name, String phone, int account) {
if (find(name))
return false;
SQLiteDatabase db = helper.getWritableDatabase();
ContentValues values = new ContentValues();
values.put("name", name);
values.put("phone", phone);
values.put("account", account);
long result = db.insert("person", null, values);
db.close();
if (result != -1) {
return true;
} else {
return false;
}
}
/**
* 更改一条记录
*
* @param name
* @param newphone
* 可以留空
* @param newaccount
* 可以留空
*/
public boolean update(String name, String newphone, int newaccount) {
if (TextUtils.isEmpty(newphone) && TextUtils.isEmpty(newaccount + "")) {
return false;
}
SQLiteDatabase db = helper.getWritableDatabase();
ContentValues values = new ContentValues();
values.put("phone", newphone);
values.put("newaccount", newaccount);
int result = db.update("person", values, "name=?",
new String[] { name });
db.close();
if (result > 0) {
return true;
} else {
return false;
}
}
/**
* 删除一条记录
*/
public boolean delete(String name) {
SQLiteDatabase db = helper.getWritableDatabase();
int count = db.delete("person", "name=?", new String[] { name });
db.close();
if (count > 0) {
return true;
} else {
return false;
}
}
3》数据库
SQLite操作命令
adb shell 进入命令模式
cd 文件名 进入文件
ls或ls -l 查看目录下的文件
sqlite3 数据库名 进入数据库
schema 查看数据库下的信息
ctrl+d 退出sqlite模式