在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. ListView常用属性、方法
  2. Android 控件(button)对齐方法实现详解
  3. Android Studio更新升级方法
  4. android 实现 APP 保活且正常升级的方法
  5. Android保存数据几种常用方法解析
  6. Android 中插件的编写方法

随机推荐

  1. Android 客户端访问服务器以及服务器开发
  2. android java开发 第二天 之熟悉 程序开
  3. Android(安卓)中的依赖注入框架
  4. Android中的消息机制(Handler)
  5. Android(安卓)异步更新UI----AsyncTask
  6. android 中 padding与margin的区别
  7. Android内存管理机制之一:lowmemory kille
  8. Android计算器低级错误?都是二进制惹的祸!
  9. android游戏引擎初探
  10. Android activity intent 入门