Android数据库存储

前言:

今天无聊就试试水,写写博客,在之前andorid使用数据储存好像大概有5种方式,其中轻量级的是sqlite数据库,但是sqlite使用起来好像有麻烦,首先要判断…之后创建数据库…创建表…之后就插入数据 那代码都是一块块的,使用起来好麻烦,所有就对数据库操作进行少少优化

代码介绍

github:https://github.com/Ruanjiahui/KotlinDatabase

android studio : compile ‘ruan.database.com:mydatabase:1.1’

优点:

  • 调用方便
  • 减少用户逻辑处理
  • 代码量少

框架设计:


原生使用数据库需要以下步骤
比如:

  • 创建SQLiteOpenHelper 之后在类创建数据库,创建表等等,这样子的灵活性比较麻烦
  • 创建SQLiteDatabase 之后操作数据库
  • ContentValues是唯一插入数据库的数据类型 如果你使用对象就必须将Object转成ContentValues
  • 数据库的数据提取返回cursor,之后手动的将cursor将数据取出来把数据封装成Object之后再使用
    .
    .
    .
    所有原生使用本地数据库是非常麻烦的事情,所以使用sqlite的时候是非常吃力的

所以才有现在这个框架的出现
SQLiteOpenHelper 和SQLiteDatabase 不需要开发者去创建和操作,之后插入数据库的时候不在是ContentValues这个数据类型了,可以直接将Object将数据插入数据库,不需要开发者手动将数据进行类型转换,其实底层实现的方式还是Object将转成ContentValues但是不需要开发者去手动转换而以,实现的方式就是好好利用java的原生反射机制,将Object里面的数据进行自动转换成ContentValues,这个样子不但可以节约开发时间,可以变得更自动化。
从数据库里面获取数据也是不需要手动转,直接将cursor数据自动封装成Object,原理其实也是利用java强大的反射机制,完成这个操作。开发者就可以直接一句命令代码就可以实现从数据库里面增删查改
这个框架也还是实现就是自动判断创建数据库和数据表的操作,首先每次启动app的时候都要检查数据库的检查是否存在,自动判断,如果没有该表则自动创建表,这个逻辑方式就不需要开发者去通过代码实现,让这个框架帮你实现

说了这么多应该就可以上代码解释了╮(╯▽╰)╭


java

public class Test implements DatabaseCallback{    public Test(Context context){        CheckDatabase.Companion.CheckData(context , "数据库名称" , "数据库表" , this);    }    @NotNull    @Override    public Object CreateTable(@NotNull String database, @NotNull String table, boolean state) {        //通过state判断这个表是不是存在  true存在false不存在        if (state)            return null;        else{            //这个是创建表的时候  传入表的结构            Establish establish = new Establish();            establish.put("id" , "int");            establish.put("name" , "varchar(50)");            return establish;        }    }}

上面的代码片段是自动检测数据库和数据库表是否存在,之后通过表的结构自动创建表不用手动的判断表
这个框架是用Kotlin写的,因为google官方将Kotlin列入android官方语言,所以提前运用一下O(∩_∩)O哈哈~下面的代码使用Kotlin语言实现功能和上面的一样

Kotlin

class Test (var context: Context) : DatabaseCallback{    override fun CreateTable(database: String, table: String, state: Boolean): Any {        if (state)            return null!!        else{            val establish : Establish = Establish()            establish.put("id" , "int")            establish.put("name" , "varchar(50)")            return establish        }    }    init {        CheckDatabase.CheckData(context , "数据库名称" , "数据库表" , this)    }}

创建完数据库的表,这个时候剩下的就是数据库的增删查改

Java

new BaseUser(context).INSERT("数据库名称" , "数据库表" , object)new BaseUser(context).DELETE("数据库名称" , "数据库表")new BaseUser(context).QUERY("数据库名称" , "数据库表" , class)new BaseUser(context).UPDATE("数据库名称" , "数据库表" , object)

上面4句话就是数据库的增删查改就这么简单不需要其他的操作

CheckData

Kotlin

BaseUser(context).INSERT("数据库名称" , "数据库表" , object)BaseUser(context).DELETE("数据库名称" , "数据库表")BaseUser(context).QUERY("数据库名称" , "数据库表" , class)BaseUser(context).UPDATE("数据库名称" , "数据库表" , object)

这个是我个人封装的一个数据库的小框架里面

CheckDatabase这个类是实现检测数据库和表是否存在的类
BaseUser是数据库操作的类

总结

本文主要介绍这个框架的使用,实现增删查改和数据库的一些操作,以便开发更好使用操作数据库

更多相关文章

  1. Android(安卓)Input Framework(二)---EventHub
  2. Android串口通讯整理
  3. Android(安卓)adb使用sqlite3对一个数据库进行sql查询
  4. 【重拾Android】(2)SQLite数据库与数据持久化
  5. Android的Parcelable用法
  6. Android(安卓)NFC开发-实践篇
  7. Android(安卓)SharedPreferences用法及程序共享机制
  8. Android知识梳理之Sqlite数据库的使用和优化
  9. 【笔记】【从Android(安卓)Guide温习Android(安卓)三】意图 (Int

随机推荐

  1. KMM 入门(三)平台差异化实现
  2. 面试官:作为Android高级攻城狮,请你解释一
  3. (一)Android(安卓)异步消息处理
  4. Unity与Android调用交互
  5. Android第一行代码——14章继续进阶-你还
  6. android的ViewPager实现加载网络图片并自
  7. Android简单联系人操作
  8. 在mac上快速搭建Android、iOS自动打包环
  9. Android(安卓)文字环绕 图文混排 支持Spa
  10. Android增加一个System Service