Android数据库的使用(增删改查)

简介: 本文介绍了一个简单的数据库操作Demo,包含创建数据库、增删改查功能。通过5个按钮分别实现创建数据库、插入数据、删除数据、更新数据和查询数据的操作。代码结构清晰,适合初学者学习Android SQLite数据库基础操作。

写一个Demo,大概如下,5个button点击事件(最后有源码)
1.png

第一步,创建一个据库辅助类:只做三件事 (创库,创表,更新/升级)
先来个没写操作的
2.png

然后如下操作
3.png

第二步:在Activity文件中初始化辅助类
4.png

第三步:创建数据库(第一个button点击事件)
5.png

第四步(增删改查,另外四个点击事件);
插入数据--增
6.png

删除数据--删
7.png

更改数据--改
8.png

查询数据--查
9.png

下面是源码
DataBaseHelp如下:

//创建数据库辅助类:创库,创表,更新/升级
public class DataBaseHelp extends SQLiteOpenHelper {
    //数据库名称
    public static final String DB_NAME = "my_database.db";
    //数据库版本
    private static final int DB_VERSION = 1;
    //表名
    public static final String TABLE_NAME = "table_demo";

    /*context:上下文
     *name:要被创建的数据库名称(文件名)
     *factory:游标工厂
     * version:数据库版本
     * */
    public DataBaseHelp(@Nullable Context context) {
        super(context, DB_NAME, null, DB_VERSION);
    }

    //创建表
    @Override
    public void onCreate(SQLiteDatabase db) {
        //用SQL语句来创建表
        String sql = "create table if not exists " + TABLE_NAME + "(_id integer primary key autoincrement,name varchar(20),age integer)";
        //执行语句
        db.execSQL(sql);
        Log.e("sql", "onCreate: " + "表创建成功");
    }

    //用于更新数据库
    @Override
    public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
        //当当前版本和老版本不一样的时候
        if (newVersion != oldVersion) {

        }
    }
}

DataBaseActivity如下:

public class DataBaseActivity extends AppCompatActivity {

    private DataBaseHelp helper;

    @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
        android: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:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:onClick="btnupdate"
        android:text="更改数据"/>
    <Button
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:onClick="btnselect"
        android:text="查询数据"/>
</LinearLayout>
相关文章
|
2月前
|
SQL 数据库 开发者
Python中使用Flask-SQLAlchemy对数据库的增删改查简明示例
这样我们就对Flask-SQLAlchemy进行了一次简明扼要的旅程,阐述了如何定义模型,如何创建表,以及如何进行基本的数据库操作。希望你在阅读后能对Flask-SQLAlchemy有更深入的理解,这将为你在Python世界中从事数据库相关工作提供极大的便利。
258 77
|
2月前
|
数据库 Android开发
Android外部数据库的引用
简介:本文介绍了在Android项目中引用外部数据库的方法。首先,将现成的数据库文件放入项目的`assets`文件夹中(需手动创建)。其次,在APP引导界面通过代码将数据库拷贝至App目录下,确保数据库可用。最后,对数据库进行增删改查等操作。关键步骤包括判断数据库是否存在、使用`AssetManager`读取数据库文件并写入App私有目录,实现外部数据库的顺利集成与使用。
|
2月前
|
数据库 Android开发 开发者
Android常用的room增删改查语句(外部数据库)
本文分享了将一个原生数据库驱动的单词APP重构为使用Room库的过程及遇到的问题,重点解决了Room中增删改查的常用语句实现。文章通过具体示例(以“forget”表为例),详细展示了如何定义实体类、Dao接口、Database类以及Repository和ViewModel的设计与实现。同时,提供了插入、删除、更新和查询数据的代码示例,包括模糊查询、分页加载等功能。此外,针对外部数据库导入问题,作者建议可通过公众号“计蒙不吃鱼”获取更多支持。此内容适合有一定Room基础的开发者深入学习。
Android常用的room增删改查语句(外部数据库)
|
5月前
|
关系型数据库 MySQL 数据库连接
Unity连接Mysql数据库 增 删 改 查
在 Unity 中连接 MySQL 数据库,需使用 MySQL Connector/NET 作为数据库连接驱动,通过提供服务器地址、端口、用户名和密码等信息建立 TCP/IP 连接。代码示例展示了如何创建连接对象并执行增删改查操作,确保数据交互的实现。测试代码中,通过 `MySqlConnection` 类连接数据库,并使用 `MySqlCommand` 执行 SQL 语句,实现数据的查询、插入、删除和更新功能。
|
7月前
|
SQL 关系型数据库 API
HarmonyOs开发:关系型数据库封装之增删改查
每个方法都预留了多种调用方式,比如使用callback异步回调或者使用Promise异步回调,亦或者同步执行,大家在使用的过程中,可以根据自身业务需要进行选择性调用,也分别暴露了成功和失败的方法,可以针对性的判断在执行的过程中是否执行成功。
262 13
|
9月前
|
存储 NoSQL API
使用Py2neo进行Neo4j图数据库的增删改查操作
使用Py2neo进行Neo4j图数据库的增删改查操作
306 5
|
9月前
|
数据可视化 API PHP
低代码开发工具-学生管理系统-老师管理增删改查实现
低代码开发工具-学生管理系统-老师管理增删改查实现
123 5
|
9月前
|
前端开发 Java 数据库连接
javamvc配置,增删改查,文件上传下载。
【10月更文挑战第4天】javamvc配置,增删改查,文件上传下载。
79 1
|
10月前
|
SQL 关系型数据库 MySQL
学成在线笔记+踩坑(3)——【内容模块】课程分类查询、课程增改删、课程计划增删改查,统一异常处理+JSR303校验
课程分类查询、课程新增、统一异常处理、统一封装结果类、JSR303校验、修改课程、查询课程计划、新增/修改课程计划
学成在线笔记+踩坑(3)——【内容模块】课程分类查询、课程增改删、课程计划增删改查,统一异常处理+JSR303校验
|
10月前
|
SQL 关系型数据库 MySQL
ThinkPHP6 连接使用数据库,增删改查,find,select,save,insert,insertAll,insertGetId,delete,update方法的用法
本文介绍了在ThinkPHP6框架中如何连接和使用数据库进行增删改查操作。内容包括配置数据库连接信息、使用Db类进行原生MySQL查询、find方法查询单个数据、select方法查询数据集、save方法添加数据、insertAll方法批量添加数据、insertGetId方法添加数据并返回自增主键、delete方法删除数据和update方法更新数据。此外,还说明了如何通过数据库配置文件进行数据库连接信息的配置,并强调了在使用Db类时需要先将其引入。
ThinkPHP6 连接使用数据库,增删改查,find,select,save,insert,insertAll,insertGetId,delete,update方法的用法

热门文章

最新文章