android: SQLite删除数据
删除数据对你来说应该就更简单了,因为它所需要用到的知识点你全部已经学过了。 SQLiteDatabase 中提供了一个 delete()方法专门用于删除数据,这个方法接收三个参数,第一 个参数仍然是表名,这个已经没什么好说的了,第二、第三个参数又是用于去约束删除某一 行或某几行的数据,不指定的话默认就是删除所有行。
是不是理解起来很轻松了?那我们就继续动手实践吧,修改 activity_main.xml 中的代码, 如下所示:
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent"
android:orientation="vertical" >
……
<Button android:id="@+id/delete_data" android:layout_width="match_parent" android:layout_height="wrap_content" android:text="Delete data"
/>
</LinearLayout>
仍然是在布局文件中添加了一个按钮,用于删除数据。然后修改 MainActivity 中的代码, 如下所示:
public class MainActivity extends Activity {
private MyDatabaseHelper dbHelper;
@Override
protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main);
dbHelper = new MyDatabaseHelper(this, "BookStore.db", null, 2);
……
Button deleteButton = (Button) findViewById(R.id.delete_data);
deleteButton.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
SQLiteDatabase db = dbHelper.getWritableDatabase();
db.delete("Book", "pages > ?", new String[] { "500" });
}
});
}
}
可以看到,我们在删除按钮的点击事件里指明去删除 Book 表中的数据,并且通过第二、 第三个参数来指定仅删除那些页数超过 500 页的书籍。当然这个需求很奇怪,这里也仅仅是 为了做个测试。你可以先查看一下当前 Book 表里的数据,其中 The Lost Symbol 这本书的页 数超过了 500 页,也就是说当我们点击删除按钮时,这条记录应该会被删除掉。
现在重新运行一下程序,界面如图 6.25 所示。
图 6.25
点击一下 Delete data 按钮后,再次输入查询语句查看表中的数据情况,结果如图 6.26所示。
图 6.26
这样就可以明显地看出,The Lost Symbol 这本书的数据已经被删除了。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 地球OL攻略 —— 某应届生求职总结
· 提示词工程——AI应用必不可少的技术
· Open-Sora 2.0 重磅开源!
· 周边上新:园子的第一款马克杯温暖上架
2015-03-03 Javascript数据模型
2015-03-03 Javascript原型继承原理
2015-03-03 function, new function, new Function
2014-03-03 sql select 0 字段
2010-03-03 判断网络连接是否正常的方法
2008-03-03 location.reload() 和 location.replace()的区别和应用
2008-03-03 GridView中模版列使用RowCommand事件如何得到当前列的行索引?