【Android Studio】 SQLite 数据库 增删改查

今日目标:参照标题

实现效果:

 

 

实现过程:

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)

 

posted @ 2023-03-15 15:48  喝着农药吐泡泡o  阅读(608)  评论(0编辑  收藏  举报