安卓开发中的数据库创建、表的创建、增删改查等操作完整步骤(含第三方库)

本文详细介绍了Android中SQLite数据库的创建、表的管理,包括增删改查操作,还探讨了sqlite事务处理和大二进制文件存储。同时,讲解了如何使用第三方库GreenDao 3.0进行数据库操作,并列出构建数据库时常见的问题及解决方案。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、基本概念

sqlLite

1. 数据类型

           NULL,
           INTEGER,
           REAL(浮点数),
           TEXT(字符串文本),
           BLOB(二进制对象)

2. 特点

     SQLite有个最大的特点: 
          可以将各种数据类型的数据保存到任何字段中而不用关心字段声明的数据类型是什么(除了主键)。

3. 总结

       SQlite通过文件来保存数据库,一个文件就是一个数据库,数据库中又包含多个表格,
       表格里又有多条记录,每个记录由多个字段构成,每个字段有对应的值,每个值我们
       可以指定类型,也可以不指定类型(主键除外)     

相关类

SQLiteOpenHelper:

      抽象类,通过继承该类,重写数据库创建以及更新的方法, 还可以通过该类的对象获得数据库实例,或者关闭数据库!

SQLiteDatabase:

     数据库访问类:可以通过该类的对象来对数据库做一些增删改查的操作

Cursor:

      游标,类似于JDBC里的resultset,结果集!可以简单理解为指向数据库中某 一个记录的指针!

一、创建数据库(对表级别的操作)

数据库设置

创建自定义SQLiteOpenHelper类

public class DBHelper extends SQLiteOpenHelper {
   

    public DBHelper(Context context) {
   
        super(context, DBConstance.DB_NAME, null, DBConstance.VERSION);
    }

    @Override
    public void onCreate(SQLiteDatabase db) {
   
        try {
   
            // 数据库第一次被调用
            db.execSQL(DBConstance.SQL_CREATE_TABLE);
        } catch (Exception e) {
   
            e.printStackTrace();
        }
    }

    @Override
    public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
   
     // 软件版本号发生改变时调用
   
    }
}

更新数据库

public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion){
   
    switch(oldVersion){
   
        case 1:
            db.execSQL(第一个版本的相关修改的sql语句);
        case 2:
            db.execSQL(第二个版本的相关修改的sql语句);
        case 3:
            db.execSQL(第三个版本的相关修改的sql语句); 
            ..........
    }
 
}
    

总结

对表级别的创建和修改需要通过执行sql语句来实现。

二、对数据库中表的操作

相关API

execSQL(SQL,Object[]):使用带占位符的SQL语句,这个是执行修改数据库内容的sql语句用的
rawQuery(SQL,Object[]):使用带占位符的SQL查询操作
move(offset):指定向上或者向下移动的行数,整数表示向下移动;负数表示向上移动!
moveToFirst():指针移动到第一行,成功返回true,也说明有数据
moveToLast():指针移动到最后一样,成功返回true;
moveToNext():指针移动到下一行,成功返回true,表明还有元素!
moveToPrevious():移动到上一条记录
getCount( )获得总得数据条数
isFirst():是否为第一条记录
isLast():是否为最后一项
moveToPosition(int):移动到指定行

添加数据

    public boolean addElement(ImeiBean imeiBean) {
   
        try {
   
            mDatabase = mDbHelper.getWritableDatabase();
            mValues = new ContentValues();
            mValues.put(DBConstance.COLUMN_IP, imeiBean.getDeviceIp())
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值