Android——Sqlite数据库——实现联系人信息的添加、查询、修改以及删除功能

这篇具有很好参考价值的文章主要介绍了Android——Sqlite数据库——实现联系人信息的添加、查询、修改以及删除功能。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

    掌握常用布局和基本控件的使用方法
    掌握界面图像显示的使用方法
    掌握SQLite数据库的创建和基本操作方法

通过线性布局和相对布局来搭建Activity界面,在MainActivity中编写逻辑代码,运行程序,输入两条联系人信息分别点击“添加”“查询”“修改”“删除”按钮。实现联系人信息的添加、查询、修改以及删除功能。操作成功后,通过弹出的消息内容显示对应操作。下图界面仅供参考,可根据功能另外设计界面。

Android——Sqlite数据库——实现联系人信息的添加、查询、修改以及删除功能

Android——Sqlite数据库——实现联系人信息的添加、查询、修改以及删除功能

activity_main.xml 

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:background="@drawable/bg">
    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_marginTop="200dp"
        android:id="@+id/ll1">
        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="姓名:"
            android:layout_marginLeft="10dp" />
        <EditText
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:id="@+id/et1"/>
    </LinearLayout>
    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_below="@+id/ll1"
        android:id="@+id/ll2">
        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="电话:"
            android:layout_marginLeft="10dp" />
        <EditText
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:id="@+id/et2"/>
    </LinearLayout>
    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_below="@id/ll2"
        android:layout_marginTop="10dp"
        android:id="@+id/ll3">
        <Button
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:background="#5522"
            android:layout_weight="1"
            android:layout_marginLeft="10dp"
            android:text="添加"
            android:textColor="#000"
            android:id="@+id/addBtn"/>
        <Button
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:background="#5522"
            android:layout_weight="1"
            android:layout_marginLeft="5dp"
            android:text="查询"
            android:textColor="#000"
            android:id="@+id/selectBtn"/>
        <Button
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:background="#5522"
            android:layout_weight="1"
            android:layout_marginLeft="5dp"
            android:text="修改"
            android:textColor="#000"
            android:id="@+id/updateBtn"/>
        <Button
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:background="#5522"
            android:layout_weight="1"
            android:layout_marginRight="10dp"
            android:layout_marginLeft="5dp"
            android:text="删除"
            android:textColor="#000"
            android:id="@+id/deleteBtn"/>
    </LinearLayout>
    <EditText
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:id="@+id/et3"
        android:layout_below="@+id/ll3"
        android:hint="请输入要查询或修改或删除的姓名:"
        android:layout_marginLeft="10dp"
        />

    <Button
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:background="#5522"
        android:layout_centerHorizontal="true"
        android:layout_below="@+id/et3"
        android:layout_marginTop="5dp"
        android:textColor="#000"
        android:text="条件查询"
        android:id="@+id/conditional_query_btn"/>
    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_below="@+id/conditional_query_btn"
        android:id="@+id/showInfo"
        android:layout_marginLeft="10dp" />
</RelativeLayout>

Android——Sqlite数据库——实现联系人信息的添加、查询、修改以及删除功能

我在原有界面上加了一个条件输入框,以便条件查询、修改和删除时通过用户姓名来执行操作。 

MainActivity.java

package com.example.shiyan5;

import androidx.annotation.Nullable;
import androidx.appcompat.app.AppCompatActivity;

import android.content.ContentValues;
import android.content.Context;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteOpenHelper;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;
import android.widget.Toast;

public class MainActivity extends AppCompatActivity implements View.OnClickListener {

    private Button add, select, update, delete, conditionalQueryBtn;
    private EditText name, telNumber, conditionalQueryEt;
    private TextView showInfo;
    private SQLiteDatabase db;
    private MyDbHelper myDbHelper;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        initVeiw();
        add.setOnClickListener(this);
        select.setOnClickListener(this);
        update.setOnClickListener(this);
        delete.setOnClickListener(this);
        conditionalQueryBtn.setOnClickListener(this);
        conditionalQueryEt.setOnClickListener(this);
        myDbHelper = new MyDbHelper(this, "MyDatabase.db", null, 669);
    }

    private void initVeiw() {
        add = findViewById(R.id.addBtn);
        select = findViewById(R.id.selectBtn);
        update = findViewById(R.id.updateBtn);
        delete = findViewById(R.id.deleteBtn);
        name = findViewById(R.id.et1);
        telNumber = findViewById(R.id.et2);
        showInfo = findViewById(R.id.showInfo);
        conditionalQueryEt = findViewById(R.id.et3);
        conditionalQueryBtn = findViewById(R.id.conditional_query_btn);
    }

    @Override
    public void onClick(View view) {
        switch (view.getId()) {
            case R.id.addBtn:
                db = myDbHelper.getWritableDatabase();
                String userName = name.getText().toString();
                String telephoneNumber = telNumber.getText().toString();
                //SQLiteDatabase的insert方法来添加
                /* ContentValues contentValues = new ContentValues();
                contentValues.put("userName", userName);
                contentValues.put("telephoneNumber", telephoneNumber);
                db.insert("user", null, contentValues);*///返回的是插入记录的索引号,也就是第多少条。
                db.execSQL("insert into user(username,telephoneNumber) values(?,?)", new Object[]{userName, telephoneNumber});
                db.close();
                break;
            case R.id.selectBtn:
                db = myDbHelper.getReadableDatabase();
                //Cursor: 结果集,有一个游标,游标会指向结果集中的某一条记录。
                Cursor cursor = db.query("user", new String[]{"userName", "telephoneNumber"}, null, null, null, null, null, null);
                showInfo.setText("查询结果:\n");
                if (cursor.getCount()>0) {
                    Toast.makeText(this, "查询成功!!", Toast.LENGTH_SHORT).show();
                    while (cursor.moveToNext()) {
                        showInfo.append("姓名:" + cursor.getString(0) + "电话号码:" + cursor.getString(1) + "\n");
                    }
                } else {
                    Toast.makeText(this, "一条数据都没有呢~~", Toast.LENGTH_SHORT).show();
                }
                cursor.close();
                db.close();
                break;
            case R.id.conditional_query_btn:
                db=myDbHelper.getReadableDatabase();
                String conditionalQuery=conditionalQueryEt.getText().toString();
                Cursor cursor1=db.query("user",new String[]{"userName", "telephoneNumber"},"userName=?",new String[]{conditionalQuery},null,null,null,null);
                //Cursor cursor1 =db.rawQuery("select userName,telephoneNumber from user where userName=?",new String[]{conditionalQuery});
                showInfo.setText("查询结果:\n");
                if (cursor1.getCount()>0) {
                    Toast.makeText(this, "查询成功!!", Toast.LENGTH_SHORT).show();
                    while (cursor1.moveToNext()){
                        showInfo.append("姓名:" + cursor1.getString(0) + "电话号码:" + cursor1.getString(1) + "\n");
                    }
                }else{
                    Toast.makeText(this, "没找到呢~~", Toast.LENGTH_SHORT).show();
                }
                cursor1.close();
                db.close();
                break;
            case R.id.updateBtn:
                db=myDbHelper.getWritableDatabase();
                ContentValues contentValues1=new ContentValues();
                String userName1 = name.getText().toString();
                String telephoneNumber1= telNumber.getText().toString();
                String conditionalQuery2=conditionalQueryEt.getText().toString();
                contentValues1.put("userName", userName1);
                contentValues1.put("telephoneNumber", telephoneNumber1);
                int a=db.update("user",contentValues1,"userName=?",new String[]{conditionalQuery2});
                if (a>0) {
                    Toast.makeText(this, "更改成功,共更改了"+a+"条数据", Toast.LENGTH_SHORT).show();
                }else{
                    Toast.makeText(this, "更改失败", Toast.LENGTH_SHORT).show();
                }
                //db.execSQL("update user set userName=?,telephoneNumber=? where userName=?",new Object[]{userName1,telephoneNumber1,conditionalQuery2});
                db.close();
                break;
            case R.id.deleteBtn:
                db=myDbHelper.getWritableDatabase();
                String conditionalQuery1=conditionalQueryEt.getText().toString();
                //db.execSQL("delete from user where userName=?",new Object[]{conditionalQuery1});
                int i=db.delete("user","userName=?",new String[]{conditionalQuery1});//返回删除的条数。
                if(i>0)
                {
                    Toast.makeText(this, "删除成功,共删除了"+i+"条数据", Toast.LENGTH_SHORT).show();
                }else
                {
                    Toast.makeText(this, "删除失败", Toast.LENGTH_SHORT).show();
                }
                db.close();
                break;
        }
    }

    class MyDbHelper extends SQLiteOpenHelper {


        public MyDbHelper(@Nullable Context context, @Nullable String name, @Nullable SQLiteDatabase.CursorFactory factory, int version) {
            super(context, name, factory, version);
        }

        @Override
        public void onCreate(SQLiteDatabase sqLiteDatabase) {
            sqLiteDatabase.execSQL("create table user(user_id integer primary key autoincrement,userName varchar(10),telephoneNumber varchar(20))");
        }

        @Override
        public void onUpgrade(SQLiteDatabase sqLiteDatabase, int i, int i1) {

        }
    }
}

 增删改查我写了两种方式,第一种是db.execSQL()直接用SQL语句进行操作,第二种使用 SQLiteDatabase中自带的增删改查的方法:db.insert()  db.query()     db.update()  db.delete()。

哈哈

哈哈哈

我对着潮汐推敲什么是以静制动
山林间迷雾
能不能当障眼法的内容
月转星移的轨迹跟临军布阵相同
风林火山是不是用兵之重
到最后必然是我运筹帷幄
你最后放弃抵抗
我仰望着夕阳
你低头黯然离场
听我说胜败是兵家之常
你不用放在心上
是因为我只适合文章来源地址https://www.toymoban.com/news/detail-471565.html

到了这里,关于Android——Sqlite数据库——实现联系人信息的添加、查询、修改以及删除功能的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • [Android Studio]Android 数据存储--SQLite数据库存储

     🟧🟨🟩🟦🟪 Android Debug 🟧🟨🟩🟦🟪 Topic   发布安卓学习过程中遇到问题解决过程,希望我的解决方案可以对小伙伴们有帮助。 💯实战演练--基于SQLite数据库的通讯录实现数据的增删改查 1,创建程序 2,放置界面控件 3,编写界面交互代码 4, 核心方法讲解 5,数据库

    2024年02月08日
    浏览(51)
  • Android 进阶 1、sqlite数据库

    在我们学会了Android的基本使用之后就需要往高处发展了,毕竟水往高处流,很多时候我们学习一门技术感觉没有收获都是因为还没到那个层次,当你一步步往上走的时候就会渐渐发现自己收获的越来越多,进步也就会越来越快了,废话不多说,回到正题; 1、认识数据库 安卓

    2024年02月10日
    浏览(48)
  • Android之SQLite数据库使用

    SQLite是Android系统集成的一个轻量级的数据库。 Android提供了 SQLiteDatabase代表一个数据库 (底层就是一个数据库文件),一旦应用程序获得了代表指定数据库的SQLiteDatabase对象,接下来可通过SQLiteDatabase对象来管理、操作数据库了。 Android为了让我们能够更加方便地管理数据库,

    2024年02月16日
    浏览(50)
  • Android studio 连接SQLite数据库 +创建数据库+创建数据库表

    Android studio 之数据库的使用 连接创建SQLite 大家好,欢迎来到寒依。 相信看啦我的教程 当老师问你在学习Android studio 数据库使用过程中遇到什么困难,分享一下你的感悟和解决方法 的时候,你可以直接大胆的说出来: “老师我没有遇到问题,看啦寒依的教程 畅行无阻” 我

    2024年02月02日
    浏览(55)
  • Android studio引入外部SQLite数据库,获取数据库列表数据

    准备好Android studio和一个创建管理数据库的软件,推荐SQLite Expert Professional或者Navicat Premium。这里以SQLite Expert Professional为例。 1.穿件sqlite数据库,按照自己的项目要求定义数据库和相应的数据表 1.在main目录下创建assets文件,将准备好的sqlite数据库文件放入这个目录下 解释:

    2024年02月08日
    浏览(57)
  • Android Studio使用SQLite数据库

    1.能使用SQLiteDatabase类操作数据库与表 2.能使用SQLiteDatabaseHelper类操作数据库与表 无论是安卓应用还是苹果应用,都提供了本地轻量级数据库——SQLite,可以创建和删除数据库,还能对数据表进行增删改查操作。 SQLite由SQL编译器、内核、后端以及附件几个部分构成。SQLite通过

    2024年02月01日
    浏览(47)
  • Android开发——SQLite数据库的使用

    1、SQLite的特性 SQLite是一个进程内的库,实现了自给自足的、无服务器的、零配置的、事务性的 SQL 数据库引擎。它是一个零配置的数据库,这意味着与其他数据库不一样,您不需要在系统中配置。 SQLite 引擎不是一个独立的进程,可以按应用程序需求进行静态或动态连接。

    2024年02月15日
    浏览(48)
  • Android中SQLite数据库查询详解

    SQLite在线教程网址https://www.yiibai.com/sqlite table :表名。相当于select *** from table语句中的table 。如果是多表联合查询,可以用逗号将两个表名分开。 columns :要查询出来的列名(字段),全部查询就写null。相当于 select *** from table语句中的 ***部分 。如果是查询多个参数,可以用

    2024年01月16日
    浏览(57)
  • Android中两种选择联系人方式

    1.在选择联系人方式网上也有很多案例 有的说是使用ContactsContract.CommonDataKinds.Phone.CONTENT_URI也有的说是使用ContactsContract.Contacts.CONTENT_URI其实这两种方式都可以使用 只不过ContactsContract.Contacts.CONTENT_URI这种方式需要多查询一遍 一、使用ContactsContract.CommonDataKinds.Phone.CONTENT_URI跳转

    2024年01月17日
    浏览(33)
  • Android中SQLite数据库增删改查/使用ListView显示数据库内容(有完整源码)

    android作业笔记 编写SQLite数据库相关操作的代码,实现下图中的功能(第一排按钮布局没有调整屏幕大小适配…不过下面那一排加了 android:layout_weight=“1”) SQLite展示 先上源码:https://gitee.com/meng-fanyang/SQLiteWork 里边有三个分支,对应这不同的写法: master主分支是写的可以说

    2024年02月09日
    浏览(46)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包