Android之如何用SQLiteOpenHelper创建数据库

279 阅读2分钟

在安卓中 嵌入了一个小型的数据库叫SQLite ,这个SQLite 是一个软件库,实现了自给自足的、无服务器的、零配置的、事务性的 SQL 数据库引擎。 至于更详细的关于这个数据库的请自行百度

而在安卓中如何在SQLite操控数据库并使用呢?

在SQLite有两个核心类是SQLiteDatabase与 SQLiteOpenHelper 这两个类 这两个类中SQLiteDatabase是用来执行数据库操作的类 SQLiteOpenHelper 则是用来创建数据库的类

了解了这一些基本知识之后 我们就可以开始了解怎么使用SQLiteOpenHelper来创建数据库来

代码如下

package com.example.phone;

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

import androidx.annotation.Nullable;

public class DatabaseHelper extends SQLiteOpenHelper {
private static final String DATABASE_NAME = "phone.db";
    private static final int DATABASE_VERSION =2;
    public DatabaseHelper(@Nullable Context context) {
        super(context, DATABASE_NAME, null, DATABASE_VERSION);
    }

    @Override
    public void onCreate(SQLiteDatabase db) {
        String sql = "create table phone(id integer primary key autoincrement,name varchar(255),phone varchar(255))";
        db.execSQL(sql); //建表
        //初始化数据
    }


    @Override
    public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {

    }
} 

首先我们先定义一个类叫DatabaseHelper 还是xxx都随你 然后继承SQLiteOpenHelper这个类

然后定义数据库名 一个私有静态final变量的string变量名称 和定义一个私有静态final变量的int变量数据库版本

然后写一个公共方法去实现调用父类的构造方法

然后在onCreate重写创建数据库的方法 定义个string变量并把创建数据的语句复制给这个变量 (这里有一个重点)我标粗那里 这里要定义一个主键id 而且要自增 如果你不想自增的话 要注意主键id别重复就好 和设数据库其它列的时候要设置好长度 不然会报错

String sql = "create table phone(id integer primary key autoincrement,name varchar(255),phone varchar(255))";

然后用 db.execSQL(sql); 去执行上面的sql语句

这样子如果调用这个类的时候就会创建好一个名为phone.db的数据库了

然后而如何调用也很简单 创建一个DatabaseHelper(你创建继承SQLiteOpenHelper的类名)

然后用你new的对象里的getWritableDatabase()去创建出一个db对象 在创建的时候就会自动创建好并打开与这个你需要的数据库的连接了 不过记得如果不需要使用这个数据库时请用db.close(); 去关闭连接

DatabaseHelper helper = new DatabaseHelper(this);
SQLiteDatabase db =  helper.getWritableDatabase();