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