写点什么

Android 数据库的使用(增删改查),那些年我们一起踩过算法与数据结构的坑

用户头像
Android架构
关注
发布于: 2 小时前

@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


《Android学习笔记总结+最新移动架构视频+大厂安卓面试真题+项目实战源码讲义》
浏览器打开:qq.cn.hn/FTe 免费领取
复制代码


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

用户头像

Android架构

关注

还未添加个人签名 2021.10.31 加入

还未添加个人简介

评论

发布
暂无评论
Android数据库的使用(增删改查),那些年我们一起踩过算法与数据结构的坑