android数据库的简单Demo(原生版+Google版)

本文介绍了Android中使用SQLite数据库的基本步骤,包括创建数据库帮助类、数据库操作类(DAO)以及在Activity中进行增删查改的操作。详细讲解了SQLiteDatabase的insert、delete、update和query方法,并提供了完整的代码示例。此外,还涉及到了数据库事务的使用,确保数据操作的原子性。
摘要由CSDN通过智能技术生成

本文出自 “双门M” 简书博客,转载或引用请注明出处。

android和ios的数据库都是用SQLite来实现。
在安卓里面数据库怎么用呢,简单来说可用分为以下三步:
1、新建一个数据库帮助类,继承自SQLiteOpenHelper,复写onCreate() 和 onUpgrade()
2、新建一个数据里操作类(dao类),利用 数据库帮助类 得到数据库的实例,然后在dao类里面编写 增删改查 的方法
3、在Activity里面实例化数据库操作类(dao类),调用对应的 增删查改方法。
(对数据进行的操作也就无非四种,即CRUD。其中C代表添加(Create),R代表查询(Retrieve),U代表更新(Update),D代表删除(Delete)。有人叫增删改查,有人叫增删查改)

来图片最直接
增删改查演示.gif

结构简图

数据库demo结构简图.png



一、SQLite数据库简介

  • 轻量级 : SQLite数据库是一个轻量级的数据库, 适用于少量数据的CURD;
  • 文件本质 : SQLite数据库支持大部分SQL语法, 允许使用SQL语句操作数据库, 其本质是一个文件, 不需要安装启动;
  • 数据读写 : SQLite数据库打开只是打开了一个文件的读写流, 如果有大数据量读写, 需要高并发存储, 那么就不应该使用SQLite;

二、安卓数据如何使用

1、编写数据库帮助类

  • 新建一个数据库帮助类,继承自SQLiteOpenHelper
  • 编写构造函数
  • 复写onCreate() 和 onUpgrade()

代码如下:

import android.content.Context;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteOpenHelper;

/**
 * 数据库Helper类,必须继承自 SQLiteOpenHelper
 * 当一个继承自 SQLiteOpenHelper 后需要复写两个方法,分别是 onCreate()  和 onUpgrade()
 * onCreate(): onCreate是在数据库创建的时候调用的,主要用来初始化数据表结构和插入数据初始化的记录
 * onUpgrade():onUpGrade是在数据库版本升级的时候调用的,主要用来改变表结构
 *
 *
 *  数据库帮助类要做的事情特别简单:
 *  1、复写onCreate()  和 onUpgrade()方法
 *  2、在这两个方法里面填写相关的sql语句
 *
 *
 */
public class MyDBHelper extends SQLiteOpenHelper{
   

    public MyDBHelper(Context context) {
        /**
         * 参数说明:
         *
         * 第一个参数: 上下文
         * 第二个参数:数据库的名称
         * 第三个参数:null代表的是默认的游标工厂
         * 第四个参数:是数据库的版本号  数据库只能升级,不能降级,版本号只能变大不能变小
         */
        super(context, "mintest.db", null, 2);
    }


    /**
     * onCreate是在数据库创建的时候调用的,主要用来初始化数据表结构和插入数据初始化的记录
     *
     * 当数据库第一次被创建的时候调用的方法,适合在这个方法里面把数据库的表结构定义出来.
     * 所以只有程序第一次运行的时候才会执行
     * 如果想再看到这个函数执行,必须写在程序然后重新安装这个app
     */

    @Override
    public void onCreate(SQLiteDatabase db) {
        db.execSQL("create table contactinfo (id integer primary key autoincrement, name varchar(20), phone varchar(20))");
    }


    /**
     * 当数据库更新的时候调用的方法
     * 这个要显示出来得在上面的super语句里面版本号发生改变时才会 打印  (super(context, "itheima.db", null, 2); )
     * 注意,数据库的版本号只可以变大,不能变小,假设我们当前写的版本号是3,运行,然后又改成1,运行则报错。不能变小
     * @param db
     * @param oldVersion
     * @param newVersion
     */
    @Override
    public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
        db.execSQL("alter table contactinfo add account varchar(20)");
    }
}


2、数据库操作类(dao类)

dao类在这里做得事情特别简单:
* 1、定义一个构造方法,利用这个方法去实例化一个 数据库帮助类
* 2、编写dao类的对应的 增删改查 方法。

代码如下:


package amqr.com.dbanddao.dao;

import android.content.ContentValues;
import android.content.Context;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;

import amqr.com.dbanddao.db.MyDBHelper;

/**
 *  ContactInjfoDao  数据库操作类  dao后缀的都是数据库操作类
 *
 *  我们这里的每一个 增删改查 的方法都通过getWritableDatabase()去实例化了一个数据库,这里必须这么做
 *  不客气抽取 成为一个成员变量, 否则报错,若是觉得麻烦可以通过定义方法来置为null和重新赋值
 *
 *  —— 其实dao类在这里做得事情特别简单:
 *  1、定义一个构造方法,利用这个方法去实例化一个  数据库帮助类
 *  2、编写dao类的对应的 增删改查 方法。
 *
 */
public class ContactInjfoDao {
   

    private MyDBHelper mMyDBHelper;

    /**
     * dao类需要实例化数据库Help类,只有得到帮助类的对象我们才可以实例化 SQLiteDatabase
     * @param context
     */
    public ContactInjfoDao(Context context) {
        mMyDBHelper=new MyDBHelper(context);
    }

    // 将数据库打开帮帮助类实例化,然后利用这个对象
    // 调用谷歌的api去进行增删改查

    // 增加的方法吗,返回的的是一个long值
    public long addDate(String name,String phone){
        // 增删改查每一个方法都要得到数据库,然后操作完成后一定要关闭
        // getWritableDatabase(); 执行后数据库文件才会生成
        // 数据库文件利用DDMS可以查看,在 data/data/包名/databases 目录下即可查看
        SQLiteDatabase sqLiteDatabase =  mMyDBHelper.ge
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值