• android 数据库 SQLite的笔记


    在android中使用SQLite数据库,可以直接用SQLiteOpenHelper帮助类。通过构造此帮助类的一个实例,然后使用方法getReadableDatabase()或getWritableDatabase()就可以打开数据库,打开数据库是为了

    这里的getReadableDatabase()方法又包含了getWritableDatabase()方法。正常情况下两个方法都会得到一个可读写的数据库,但如果出现磁盘满了等异常情况,getWritableDatabase()就会出错,而getReadableDatabase()还可以得到一个只读方式打开的数据库。

    SQLiteOpenHelper是一个抽象类,必须自己实现其中的具体操作。可以重写构造方法(简单传递一个context)、onCreate()中实现建表的SQL语句(like db.execSQL("create table tableName(xxx xxx, aaa aaa, bbb bbb)") )使得刚创建数据库的同时建立自己需要的表(用惯了sharedpreference都要忘记数据库中的Table了)、onUpgrade()中实现数据库更新操作,因为onCreate仅在数据库初次建立时运行,如果检测到数据库已存在,就不会执行onCreate中的操作。

    对此可以在onUpgrade()中将所有表丢弃,然后再调用onCreate(),这样一旦版本号增大了,就可以更新各表了。

    SQLiteOpenHelper中,常用的构造方法有4次参数,包括context, 数据库名, cursor和版本号。

    往数据库中增删改数据的操作,就写在相应的活动中,像MainActivity之类的。

    插入数据步骤:先构造一个databaseHelper(是自己把SQLiteOpenHelper实现出来的类的实例)然后由此helper得到可写数据库,传给SQLiiteDatabase类的实例db。(此处有点不懂的是,得到helper的时候就执行了其中的onUpgrade,还是insert完之后它才执行)。然后构造一个ContentValues实例,用put方法存入键值对,然后再对SQLiiteDatabase类的实例db执行insert方法,参数有三个,包括表名,第二个先不管填null,第三个是ContentValues的实例(此处没有数据库名的参数,是因为帮助类helper是为专门一个数据库构造的,其构造方法已有数据库名)。

    更新数据步骤:基本和插入数据相同,不同的是insert换为update方法,参数有4个,分别为表名、ContentValues实例、where(like "name=?")、selectionArgs(字符串,填在上一个参数的位置)。

    删除数据步骤:和更新数据唯一的区别就是update改为delete,参数的类型是一样的。

    查询数据步骤:

    这里比较不一样,类SQL语言的地方比较多。新建一个Cursor类,不是用构造方法,而是对SQLiteDatebase类的实例调用实例方法query()方法,query()方法有7个参数:表名、列名、where、selectionArgs(到此,和upgrade&delete一样)、group by语句、group by args、排序。它的返回值就是一个cursor实例。

    得到cursor实例之后,先判断一下是否为空,然后在一个while循环中将所有键值取出来就好了,判断是否结束的方法是while(moveToNext)。取出键值可以这样: String temp = cursor.getString(cursor.getColumnIndex("xxx")) ;

    其实这里可以看出,SQLite的操作,很多地方和四大组件之一——ContentProvider中的操作有很大的相似程度。

  • 相关阅读:
    PHP 文件包含之文件路径截断(转)
    如何使用Linux通用后门(转zafe)
    利用sqlmap和burpsuite绕过csrf token进行SQL注入 (转)
    正则表达式30分钟入门教程<转载>
    php empty()和isset()的区别<转载>
    $_SERVER详细资料整理(转)
    [C语言(VC)] 打造自己的键盘记录器 (zaroty)
    metasploit(MSF)终端命令大全
    linux提权总结(外文)
    kettle菜鸟学习笔记1----相关准备知识
  • 原文地址:https://www.cnblogs.com/jason31/p/9519332.html
Copyright © 2020-2023  润新知