Android 数据库的使用(增删改查),那些年我们一起踩过算法与数据结构的坑
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_data_base);
//初始化辅助类
helper = new DataBaseHelp(this);
}
//创建数据库
public void btncreate(View view) {
//getWritableDatabase()打开数据库
SQLiteDatabase db = helper.getWritableDatabase();
//当数据库不用时关闭数据库(为了防止博主 Demo 出错。。。。。)
db.close();
}
//添加数据
public void btninsert(View view) {
SQLiteDatabase db = helper.getWritableDatabase();
//Android 为了方便程序员 SQL 开发,提供了一个贼好的 API: ContentValues(添加数据交给它)
ContentValues values = new ContentValues();
//放值
values.put("name", "张三");
values.put("age", 18);
db.insert(DataBaseHelp.TABLE_NAME, null, values);
values.put("name", "李四");
values.put("age", 19);
db.insert(DataBaseHelp.TABLE_NAME, null, values);
values.put("name", "王五");
values.put("age", 20);
db.insert(DataBaseHelp.TABLE_NAME, null, values);
//关闭数据库
db.close();
}
//删除数据
public void btndelete(View view) {
SQLiteDatabase db = helper.getWritableDatabase();
/*table :表名
whereClause:满足删除条件 格式:例子: "name=?"
whereArgs:满足删除的条件*/
db.delete(DataBaseHelp.TABLE_NAME, "name=?", new String[]{"张三"});
//关闭数据库
db.close();
}
//修改数据
public void btnupdate(View view) {
SQLiteDatabase db = helper.getWritableDatabase();
ContentValues values = new ContentValues();
values.put("name", "BoRe");
values.put("age", 7);
/*
table:表名
values:更新的数据
whereClaues:更新条件 格式:例子: "name=?"
whereArgs:满足更新的条件*/
db.update(DataBaseHelp.TABLE_NAME, values, "name=?", new String[]{"李四"});
//关闭数据库
db.close();
}
//查找数据
public void btnselect(View view) {
SQLiteDatabase db = helper.getWritableDatabase();
/*
*table :表名
colums:被查询的列(字段)
selection :查询条件
selectionArgs:满足查询条件
group:指定分组
having:分组筛选数据的关键字
orderby:排序*/
Cursor cursor = db.query(DataBaseHelp.TABLE_NAME, new String[]{"name", "age"}, null, null, null, null, null);
//数据拿到了,已经在 cursor 游标中,现在要遍历游标
//先拿到我们关心的列的索引
int nameIndex = cursor.getColumnIndex("name");
int ageIndex = cursor.getColumnIndex("age");
while (cursor.moveToNext()) {
//通过列的索引去获取单个格子的值
String name = cursor.getString(nameIndex);
int age = cursor.getInt(ageIndex);
Log.e("Select", "btnselect: " + name + age);
}
//关闭数据库
db.close();
}
}
xml 文件如下:
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
tools:context=".DataBaseActivity">
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:onClick="btncreate"
android:text="创建"/>
<Button
androi
d:layout_width="wrap_content"
android:layout_height="wrap_content"
android:onClick="btninsert"
android:text="插入数据"/>
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:onClick="btndelete"
android:text="删除数据"/>
<Button
评论