Kotlin+sql打造存储系统

《Kotlin+sql打造存储系统》

嗯,这回就用kotlin实现sql的简单操作。

首先创建一个database类,用来实现增删查改,然后实现一个dbhelper类,用来构建sql字符串。

Dbhelper是继承sqlliteopenhelper类,所以要重载几个函数,两个就行,一个是oncreat,一个是onupgrade

override fun onCreate(db: SQLiteDatabase){    db.execSQL(“create table main (_id integer primary key autoincrement,” +            “name text,” +            “count text,” +            “time text,” +            “)”);

override fun onUpgrade(db: SQLiteDatabase, oldVersion: Int, newVersion: Int) {    db.execSQL(“alter table main add account varchar(20)”)}

首先在插入数据的时候要判断数据库存不存在,不能没有表就硬插对不对?会崩溃的,插入数据就是实例化一个contentValues,然后往里面put数据,最后让database去insert即可,最后不要忘记关闭database

在插入的时候进行判重复,如何判断重复?一种是查询主表中有没有重复,而是查询有没有这个名字的副表,这次就查询主表中有没有,我们可以自己构造sql语句执行,不过这样比较麻烦,但是kotlin已经有一个sqldatabase类了,鉴于本身也用不着多么复杂的系统,于是就用这个类好了

删除的时候用删除的sql语句,注意的是删除时需要名字的字符串数组,而不是一个字符串,需要转换,转换也很简单,用arrayof(String)即可

我打算首先创建一个总表,放着计划名字,然后再创建一个表,表的名字就是计划名字,里面放的是目标

那么,填入一个计划,就创建一个表,删除一个计划,就删除一张表,我计划让dbhelper完成所有的sql语句构建操作,而database类则进行容错判断处理,那么到底是用Android类,还是简单的只是用sql语句呢?这个就要根据实际效果来看,实际上,这两者并没有什么不同,甚至,如果用sqldatabase,则省去了自己编写数据库操作类的步骤,实际上的确如此,既然能省掉,那我再用那个类去构建一个新类,岂不多此一举?或者说,我构建sql新类,本身就是多此一举?说实话,的确是这样,为了完整性,我还是用sql语句单独实现一个sql操作类,自己去实现一些,函数更简便,那么就再也不能用sqldatabase类了。

同时也不能这么说,sqldatabase的cursor是真的好用,或者说,把sqldatabase封装,而舍弃dbhelper才是王道。。。

下期再更。。。

    原文作者:我在东北玩泥巴_
    原文地址: https://www.jianshu.com/p/92ec4e169e17
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞