zoukankan      html  css  js  c++  java
  • SQLite再回顾(基于android studio开发环境)

    第一次接触SQLite,真是一场不友好的相遇,就搁浅在那了,能不用就不用了。之后后面的小demo以及组团项目都需要用到,唉,还是得沉下心学习啊。

    今天就学到的一点,做一个小回顾,让以后再遇到方便迅速回忆,不再慢慢找啦。

    首先关于SQLite的概念。

    详细的暂且不说,官方说的很清楚,这里就我个人感觉讲,就是小型的数据库,置放在项目内部,一种简单,快捷(相对大型数据库)的数据库。

    本篇大致分几个说点。

    1.基本结构    2.数据操作方式  3.数据文件查看以及工具

    一,基本机构

    1.一个数据库支持类,需继承SQLiteOpenHelper,写完会要求继承两个方法,

    onCreate()

    onUpgrade()

     /**
         * 创建数据库或开启数据库
         *
         * @param sqLiteDatabase 数据库名
         */
        @Override
        public void onCreate(SQLiteDatabase sqLiteDatabase) {
            Log.i("tag","----onCreate----");
             String sql = "create table "+SQLbase.TABLE_NAME+"("+SQLbase.ID+" integer primary key autoincrement,"+
                     SQLbase.NAME+" varchar(20),"+SQLbase.NUM+" varchar(20))";
            sqLiteDatabase.execSQL(sql);//执行数据库语句
        };
    

     我们在onCreate()新建表,如果需建多张表,则与此类似即可。在这里我们可以打上log看它的运行过程。

    /**
         *
         * @param sqLiteDatabase 数据库表名
         * @param i 旧版本
         * @param i1 新版本
         */
        @Override
        public void onUpgrade(SQLiteDatabase sqLiteDatabase, int i, int i1) {
            Log.i("tag","----onUpgrade----");
    
        }
    

     因为SQLite的更新是覆盖式的,用int类型记录版本号(只会大不会变小) 

     public void onOpen(SQLiteDatabase db) {
            super.onOpen(db);
            Log.i("tag","----onOpen----");
        }
    

     写一个onOpen方法,对比下onCreate() 

    public  static SQLHelper sqlHelper(Context context){
              if (helper==null){
                 helper = new SQLHelper(context);
              }
              return helper;
        }
    

      在操作类里写一个非空判断。

    05-10 11:40:21.454 15615-15615/com.example.sqlitedemo I/tag: ----onCreate----
    05-10 11:40:21.632 15615-15615/com.example.sqlitedemo I/tag: ----onOpen----
    

      由于我们第一次是创建,所以会先经过onCreate这个方法,后面再打开时,则是直接onOpen()方法。

    这里有人会问,这是为什么,为什么第一次经过onCreate() 后面都是onOpen()了?

    其实是因为

    helper.getWritableDatabase()

    ,首次创建,之后是打开。这就解释了上面要做非空判断的原因,因为我们我们是在onCreate()里创建的表,因此才有如上的日志输出。

    二、简单的支持类说完了,下面的说说操作类(工具类),这里我们一般写增删改查的方法,也可以封装一些方法和类在这里。

    就说增删改查吧。

    目前已知的有原生版的、google的api版,至于选择哪种,看个人,一般个人数据库语句还自信的,可以选择sql语句,因为熟练,代码量会少些许。

    不熟悉的比如我,就选择了google封装的api类,ContentValues类,沉下心看,也是操作简单,其他基本一致,在查询那一块需要用到cursor。

    参数怎么填怎么用,不用担心,鼠标移动下全有了(基于android studio开发环境)

    当然了原生的也不是不可以,还是那句话,个人喜好问题。

    sql语句很多,这里就不列举了,附上之前我看到文章关于google api类和原生类版。

     http://www.jianshu.com/p/b5ff80941fab

     三、查看数据库文件以及工具

    按照蓝条顺序来,找到我们要打开的工具。

     操作顺序就是data >data >项目名 > databases > 表名.db

    找到了,那我们怎么知道里面写的数据是否如所想的,工具有很多,我这里使用的是

    操作简单,无脑,把数据库文件直接导出来,将其拖到内部即可。顺便补充导出。

    最左导出 右边导入 再右边删除。

     最后再放上一张查看图。

     

    至于具体使用,大伙自行摸索吧 说太多显啰嗦哈哈。

    结语,安卓萌新一枚,起步懵懂,各种探索。有什么概念不足不到位的地方,还请大神指出留言。谢谢!

  • 相关阅读:
    字符串面试题:将句子的单词序倒置
    字符串面试题:将整型转换为字符串
    QML定时器
    QML按键事件处理
    QML鼠标事件实现变色矩形
    QML动态加载组件
    QML鼠标区域控制
    属性绑定与赋值
    设置虚拟机的本地端口映射
    关于修改banner信息;nginx反向代理apache应用
  • 原文地址:https://www.cnblogs.com/fsbr/p/6838397.html
Copyright © 2011-2022 走看看