Android:SQLiteOpenHelper类(SQLlite数据库操作)详细解析 转

 

 

 

 


 

目录

 

1. SQLite数据库介绍

SQLite

是Android内置的一个小型、关系型、属于文本型的数据库。

 Android提供了对 SQLite数据库的完全支持,应用程序中的任何类都可以通过名称来访问任何的数据库,但是应用程序之外的就不能访问。

Android中,通过SQLiteOpenHelper类来实现对SQLite数据库的操作。

2. SQLiteOpenHelper

  • 定义:SQLiteOpenHelper是一个辅助类
  • 作用:管理数据库(创建、增、修、删) & 版本的控制。
  • 使用过程:通过创建子类继承SQLiteOpenHelper类,实现它的一些方法来对数据库进行操作
  • 在实际开发中,为了能够更好的管理和维护数据库,我们会封装一个继承自SQLiteOpenHelper类的数据库操作类,然后以这个类为基础,再封装我们的业务逻辑方法。

  • SQLiteOpenHelper类的数据库操作方法介绍

  1. onCreate()创建数据库创建数据库时自动调用
onUpgrade()升级数据库 

 

3. 常见数据库使用

数据库操作无外乎:“增删查改”:


对于“增、删、改(更新)”这类对表内容变换的操作,需先调用getWritableDatabase()获得一个可写数据库对象,在执行的时候调用通用的execSQL(String sql)或或对应的操作API方法:insert()、delete()、update()
对“查”,需要调用getReadableDatabase()获得一个可读的数据库对象,然后使用query()或rawQuery()方法 

 

 

close()关闭所有打开的数据库对象 
execSQL()可进行增删改操作, 不能进行查询操作 

 

 

 DatabaseHelper.java

//第一次创建数据库的时候回调该方法
//当使用getReadableDatabase()方法获取数据库实例的时候, 如果数据库不存在, 就会调用这个方法;

//作用:创建数据库表:将创建数据库表的 execSQL()方法 和 初始化表数据的一些 insert()方法写在里面;
    @Override  
    public void onCreate(SQLiteDatabase db) {  

        //SQLite数据创建支持的数据类型: 整型数据,字符串类型,日期类型,二进制的数据类型  
        //创建了一个名为person的表
        String sql = "create table person(id integer primary key autoincrement,name varchar(64),address varchar(64))";  
        //execSQL用于执行SQL语句
        //完成数据库的创建   
        db.execSQL(sql); 
        //数据库实际上是没有被创建或者打开的,直到getWritableDatabase() 或者 getReadableDatabase() 方法中的一个被调用时才会进行创建或者打开 
        //见下代码

*MainActivity.java*

// 创建DatabaseHelper对象
// 只执行这句话是不会创建或打开连接的
            SQLiteOpenHelper dbHelper = new DatabaseHelper(SQLiteActivity.this,
                    "test_carson");
            // 调用getReadableDatabase()或getWritableDatabase()才算真正创建或打开数据库
            SQLiteDatabase sqliteDatabase = dbHelper.getReadableDatabase();

//SQLiteDatabase sqliteDatabase = dbHelper.getWritableDatabase() ;

 

3.2 插入数据

  • 步骤:创建并打开数据库(可读/写)、插入数据
  • 涉及方法:getWritableDatabase()、insert()
    insert()也可以使用excelSQL()代替
//1. 创建并打开数据库

// 创建DatabaseHelper对象(记得传入最新版本的数据库)
// 只执行这句话是不会创建或打开连接的
//注意,一定要传入最新的数据库版本号
            SQLiteOpenHelper dbHelper = new DatabaseHelper(SQLiteActivity.this,
                    "test_carson",2);
           // 调用getWritableDatabase()方法创建或打开一个可以读的数据库
          //通过返回的SQLiteDatabase对象对数据库进行操作
            SQLiteDatabase sqliteDatabase = dbHelper.getWritableDatabase();

//2. 创建并打开数据库
            // 创建ContentValues对象
            ContentValues values = new ContentValues();

            // 向该对象中插入键值对
            values.put("id", 1);
            values.put("name", "yangyz");
          //其中,key代表列名,value代表该列要插入的值
          //注:ContentValues内部实现就是HashMap,但是两者还是有差别的
          //ContenValues Key只能是String类型,Value只能存储基本类型数据,不能存储对象

            // 调用insert()方法将数据插入到数据库当中
            sqliteDatabase.insert("user", null, values);
            // 第一个参数:要操作的表名称
            // 第二个参数:SQl不允许一个空列,如果ContentValues是空的,那么这一列被明确的指明为NULL值
            // 第三个参数:ContentValues对象

db.execSQL("insert into user (id,name) values (1,'张三')")  也可以

        }

 

 

 

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

智达教育‍

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值