在Android中,我们使用的数据库是一个轻量级的数据库 sqlite 下面我们来学习一下它的CURD操作

首先 我们需要创建一个类 继承自android自带的一个数据库帮助类SQLiteOpenHelper 类名可以自己定义

import android.content.Context;import android.database.sqlite.SQLiteDatabase;import android.database.sqlite.SQLiteOpenHelper;import android.util.Log;import sqlite.android_sqlite.Constant;public class MysqliteHelper extends SQLiteOpenHelper {    public static final String TAG=MysqliteHelper.class.getName();    public static final String DATABASE_NAME="userinfo";    public static final int DATABASE_VERSION=1;    /**     * 构造函数     * @param context 上下文     * @param name 数据库名     * @param factory 游标工厂     * @param version 数据库版本 必须大于或等于1     */    public MysqliteHelper(Context context, String name, SQLiteDatabase.CursorFactory factory, int version) {        super(context, name, factory, version);    }    /**     * 构造函数     * @param context     */    public MysqliteHelper(Context context){        /*第三个参数我们现在可以默认为空*/        super(context,DATABASE_NAME,null,DATABASE_VERSION);    }    /**     * 创建数据库     * @param db 数据库对象     */    @Override    public void onCreate(SQLiteDatabase db) {        Log.e(TAG,"-------->onCreate");        String sql = "create table person(name varchar(20),age Integer)"        db.execSQL(sql);    }    /**     * 版本升级     * @param db 数据库对象     * @param oldVersion 旧版本     * @param newVersion 新版本     */    @Override    public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {        Log.e(TAG,"-------->onUpgrade");    }    /**     * 打开数据库     * @param db     */    @Override    public void onOpen(SQLiteDatabase db) {        super.onOpen(db);        Log.e(TAG,"-------->onOpen");    }}

创建完成后我们重写父类方法 这里我们可以发现 有两个构造方法 第二个构造方法是我们自己创建的 目的是方便创建实例 我们在新建实例时只需要传入上下文即可 其他参数我可以事先定义好。 在oncreat方法中 代码用于创建数据表 person 这里我们只写两个字段 方便以后练习使用

 

现在我们已经创建好了数据库类 接下来我们打开布局文件 写入一个按钮控件

    

 

接下来。我们再创建一个DBManger的类 用于构建数据库

public class DBManger {    public static MysqliteHelper helper;    /**     * 将 MysqliteHelper 类构建为一个单例的形式 只允许拥有一个实例     * @param context 上下文     * @return 数据库对象     */    public static MysqliteHelper getMmysqliteHelper(Context context){        if(helper==null){            helper = new MysqliteHelper(context);        }        return helper;    }}

我们这么做的原因是因为 在正常情况下数据类应该只能有一个实例 所有我们利用这种方法来判断当前数据库是否为空 诺为空表示还没有创建  ,那么我们便创建它,然后返回该对象

 

现在我们在Activity中创建一个createDB的方法  并先声明好MysqliteHelper 与SQLiteDatabase ,然后调用DBManger类中的静态方法获取实例

public class MainActivity extends AppCompatActivity {    private MysqliteHelper helper;    private SQLiteDatabase db = null;    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main);        helper = DBManger.getMmysqliteHelper(this);    }    public void createDB(View view){        /**         * getReadableDatabase         * getWritableDatabase         * 这两个方法的作用是创建或打开数据库 如果数据库存在 则打开 否则的话就         * 创建后再打开         * 事实上 默认情况下 这两个方法打开的都是可读可写数据库 是没有区别的 只是         * 当我们磁盘已满或者权限问题等特殊情况时它们才会区分开来 如下         * getReadableDatabase是只打开可读数据库 getWritableDatabase只打开可写数据库         */        db = helper.getWritableDatabase();        Toast.makeText(this,"创建或打开成功",Toast.LENGTH_SHORT).show();    }}

这里我们需要注意的是 在获取数据库对象时,他会默认有两个方法可供我们使用 分别是 getReadableDatabase与getWritableDatabase 这两种方法的区别我已经写在注释里了 好了。到这里我们以及创建好了一个数据库

点击按钮后便会创建userinfo数据库,我们可以在如下路径中找到该数据库  以我华为手机为例 当我们点击按钮创建数据库后可以在 data-->data-->应用包名(例如 com.sql.tdy)-->database 目录下找到

下一篇文章中我们将介绍数据库的修改 插入 以及删除的使用

https://blog.csdn.net/tdl081071tdy/article/details/88377515    ( Android 数据库Sqlite的使用(2))

更多相关文章

  1. Android2.2 API 中文文档系列(3) —— AccessibilityService
  2. Android滑动冲突二内部拦截法详情
  3. Android(安卓)Activity全屏和设置背景色
  4. Android——SQLite使用
  5. android Activity 组件
  6. Android的消息机制源码分析
  7. Kotlin 写 Android(安卓)单元测试(二),JUnit 4 测试框架和 kotlin.t
  8. Android---网络编程之Retrofit2整体结构了解以及+Okhttp3+rxjava
  9. android中的数据库操作

随机推荐

  1. laravel_day5
  2. 宝塔面板+小鸟云服务器+wordpress建站使
  3. 初识php
  4. 使用 VSCode 调试 Electron 主进程代码
  5. 多维数组遍历,购物车总金额实例
  6. php运行机制与原理及变量
  7. 在Python中,什么时候以及为何使用:=Over=
  8. 在 CentOS 7 操作系统进行 OpenVZ 7 安装
  9. 如何画人体重心?人体重心的练习分享
  10. 任谦:实践是大数据提升项目的灵魂