今日目标:参照标题

实现效果:

实现过程:

1、创建实现页面

页面设计思路:

最外层垂直线性布局、内部使用三个线性布局、后两个用的水平排版,用来显示数值。

实例化四个Button,两个EditText,两个TextView,连接数据库按钮用来增加监听点击事件,后两个一个或用获取输入,一个用来展示成果。

代码

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"> <LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal"> <TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="姓名"
android:textSize="30sp" /> <EditText
android:id="@+id/name"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:hint="请输入姓名"
android:textSize="20sp" />
</LinearLayout> <LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"> <TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="年龄"
android:textSize="30sp" /> <EditText
android:id="@+id/age"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:hint="请输入年龄"
android:textSize="20sp" />
</LinearLayout> <LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal"> <Button
android:id="@+id/btn_insert"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="插入"
android:textAllCaps="false"
android:textSize="20sp" /> <Button
android:id="@+id/btn_update"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="更新"
android:textAllCaps="false"
android:textSize="20sp" /> <Button
android:id="@+id/btn_search"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="查询"
android:textAllCaps="false"
android:textSize="20sp" /> <Button
android:id="@+id/btn_delete"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="删除"
android:textAllCaps="false"
android:textSize="20sp" />
</LinearLayout> <LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal"> <TextView
android:id="@+id/tv_show"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="1"
android:gravity="center_horizontal"
android:textSize="20sp" /> <TextView
android:id="@+id/tv_showAge"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="1"
android:gravity="center_horizontal"
android:textSize="20sp" />
</LinearLayout>
</LinearLayout>

DatabaseHelper代码

package com.example.crud_test;

import android.content.Context;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteOpenHelper;
import android.util.Log; public class DatabaseHelper extends SQLiteOpenHelper {
public DatabaseHelper(Context context) {
//第一个参数是上下文,第二个参数是数据库名称,//第三个参数是CursorFactory对象,一般设置为null,第四个参数是数据库的版本
super(context, "Test.db", null, 1);
}
// 创建表 表名information 表结构 自增id,字符串姓名,int年龄
@Override
public void onCreate(SQLiteDatabase db) {
db.execSQL("CREATE TABLE information(_id INTEGER PRIMARY KEY AUTOINCREMENT,name VARCHAR(20),age INTEGER)");
}
}

dictAcitivity代码

import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView; import java.util.ArrayList;
import java.util.List; public class DictActivity extends AppCompatActivity {
private Button insertButton, updateButton, searchButton, deleteButton;
private EditText name, age;
private TextView show, showAge;
final DatabaseHelper dbHelper = new DatabaseHelper(DictActivity.this); @Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main); insertButton = findViewById(R.id.btn_insert);
updateButton = findViewById(R.id.btn_update);
searchButton = findViewById(R.id.btn_search);
deleteButton = findViewById(R.id.btn_delete);
name = findViewById(R.id.name);
age = findViewById(R.id.age);
show = findViewById(R.id.tv_show);
showAge = findViewById(R.id.tv_showAge); SQLiteDatabase db = dbHelper.getReadableDatabase(); myShow();

内容:

实例化四个Button,两个EditText,两个TextView,连接数据库

按钮增加监听点击事件,edittext用来获取输入,textview用来展示成果

myshow()方法:

1、连接数据库

2、设置“表头”,遍历表内所有信息,每过一行,获取name和age列的数据,同时设置TextView的文本(setText()之前的文本,换行,加上该数据,其他的就是调用数据库相关代码)

Cursor的含义参考博客:

什么是cursor?怎么使用cursor? - 喝着农药吐泡泡o - 博客园 (cnblogs.com)

【Android Studio】 SQLite 数据库 增删改查的更多相关文章

  1. Android SQLite 数据库 增删改查操作

    Android SQLite 数据库 增删改查操作 转载▼ 一.使用嵌入式关系型SQLite数据库存储数据 在Android平台上,集成了一个嵌入式关系型数据库--SQLite,SQLite3支持NU ...

  2. (转)SQLite数据库增删改查操作

    原文:http://www.cnblogs.com/linjiqin/archive/2011/05/26/2059182.html SQLite数据库增删改查操作 一.使用嵌入式关系型SQLite数 ...

  3. IOS sqlite数据库增删改查

    1.简单介绍 简单封装sqlite数据库操作类 BaseDB 用于完毕对sqlite的增删改查.使用前先导入libsqlite3.0.dylib库 2.BaseDB.h // // BaseDB.h ...

  4. 使用C#书写SQLite数据库增删改查语句(以及插入byte[]时遇到的问题总结)

    在没有使用SQLite这种轻量级的数据库之前,只使用过Sqlserver2008进行数据的增删改查,公司使用的是大型的ORACLE数据库,还没有真正的会使用它.那时候觉得数据库很庞大,然而遇到SQLi ...

  5. Android SQLite数据库增删改查操作

    一.使用嵌入式关系型SQLite数据库存储数据 在Android平台上,集成了一个嵌入式关系型数据库——SQLite,SQLite3支持NULL.INTEGER.REAL(浮点数字). TEXT(字符 ...

  6. SQLite数据库增删改查操作

    一.使用嵌入式关系型SQLite数据库存储数据 在Android平台上,集成了一个嵌入式关系型数据库——SQLite,SQLite3支持NULL.INTEGER.REAL(浮点数字).TEXT(字符串 ...

  7. 通过API函数来控制SQLite数据库增删改查

    person类属性有Intenger id,String name,Intenger  age,相应的构造方法和set get方法. package com.xh.tx.dao; import and ...

  8. 通过Sql语句控制SQLite数据库增删改查

    person类属性有Intenger id,String name,Intenger  age,相应的构造方法和set get方法. package com.xh.tx.dao; import jav ...

  9. SQLite数据库增删改查

    一:SQLite数据库简介: SQLite是一种轻量级的关系型数据库,官网:http://www.sqlite.org/. SQLite数据库文件存在于移动设备的一下目录中:data->data ...

  10. 实现对sqlite数据库增删改查

    package com.example.db.dao;import java.util.ArrayList;import java.util.List;import android.content.C ...

随机推荐

  1. Hadoop集群启动没有DataNode进程

    问题状况: 问题原因: 在启动Hadoop之前,进行了多次格式化,导致DataNode的ID发生了变化 解决方案: 我们可以删除从节点所有的DataNode资料,并重新格式化 解决流程 1.根据cor ...

  2. [selenium]相对定位器

    前言 Relative Locators,相对定位器,是Selenium 4引入的一个新的定位器,相对定位器根据源点元素去定位相对位置的其它元素. 相对定位方法其实是基于JavaScript的 get ...

  3. 【opencv】传统图像识别:hog+svm行人识别实战

    实战工具:python3.7+pycharm+opencv4.6算法知识:HOG特征提取.SVM模型构建实战目的:本次实战的目的是熟悉HOG+SVM工作流算法,初步掌握图像分类的传统算法.实战记录:本 ...

  4. 手写raft(二) 实现日志复制

    1. Raft日志复制介绍 在上一篇博客中MyRaft实现了leader选举,为接下来实现日志复制功能打下了基础: 手写raft(一) 实现leader选举 日志复制是raft最核心也是最复杂的功能, ...

  5. 文心一言(ERNIE Bot)初体验

    引言 几个月前向百度提交了文心一言的体验申请,这两天收到了可以体验的通知,立马体验了一把.总体来说,文心一言基本上能做到有问必答,但是一些奇葩的问题还是会难住这位初出茅庐的 AI. 分享体验 我先后问 ...

  6. Web应用防火墙--规则防护

    一.什么是Web应用防火墙? Web应用防火墙对网站.APP的业务流量安全及合规性保护,对业务流量的识别恶意特征提取.分析识别出恶意流量并进行处理, 将正常安全的流量回源到业务服务器, 保护网站核心业 ...

  7. 从DevOps实践落地的角度谈谈“流程”和“规范"的反模式

    最近在经历的一些事情,让我突发灵感,觉得要写点关于DevOps体系建设过程中的"流程规范",记录下来. 如何解读"流程规范" 谈到DevOps落地,无一例外都会 ...

  8. NebulaGraph实战:3-信息抽取构建知识图谱

      自动信息抽取发展了几十年,虽然模型很多,但是泛化能力很难用满意来形容,直到LLM的诞生.虽然最终信息抽取质量部分还是需要专家审核,但是已经极大的提高了信息抽取的效率.因为传统方法需要大量时间来完成 ...

  9. Llama2-Chinese项目:3.1-全量参数微调

      提供LoRA微调和全量参数微调代码,训练数据为data/train_sft.csv,验证数据为data/dev_sft.csv,数据格式如下所示: "<s>Human: &q ...

  10. 【算法】国庆加班,火锅与Linq.AddRange的奇妙螺旋

    在国庆假期的一个傍晚,小悦正在家中享受火锅美食.她嘴里咀嚼着鲜嫩的牛肉,脸上洋溢着满足的微笑.突然,手机铃声响起,打破了这温馨的氛围.她拿起手机一看,是公司打来的电话. "小悦,有个紧急的项 ...