zoukankan      html  css  js  c++  java
  • android与SQLite的小总结

    关于SQLite的一些基础知识,网上很多,例如http://wenku.baidu.com/view/dfd52e0d6c85ec3a87c2c5e0.html,在这里就只是小小地总结下在Android开发中SQLite的一些关键点吧。

    SQLite的前世今生大家都懂得的,一个轻量级数据库可以说就是一个文件组织体系,一个兼容大部分数据库语法的嵌入式数据库。因为在android的SDK对其提供了支持,所以大部分android的开发中,APP内部文件系统的建立都离不开SQLite。

    首先,数据库都有创、增、改、删、查这几个操作。所以就对这几个做个小结吧。

    1、数据库创建,调用父类 SQLiteOpenHelper 的构造函数,进行构造。这个方法需要四个参数:上下文环境(例如,一个 Activity,通常是this),数据库名字,一个可选的游标工厂(通常是 Null),一个代表你正在使用的数据库模型版本的整数(自己定义)。其中的onCreate()方法会在第一次创建数据库的时候被调用。因此常常在此oncreate()里面写入建表语句。例如db.execSQL(CREATE_TABLE_SQL_RES);

    final String CREATE_TABLE_SQL_RES=

    "create table IF NOT EXISTS res_data (id integer primary key autoincrement," +
    " uid varchar(60), web varchar(60),url varchar(255), name uvarchar(60),realated varchar(60))";

    特别在建表过程中值得一提的是,必须实体化helper方法才能建表成功,例如db = dbhelper.getWriteableDatabase();

    2,增、改的操作,可以使用db.execSQL();使用数据库操作语法操作,同时也可以通过android里的insert()和update()方法操作。个人建议后者,因此这些操作跟android的代码风格更加统一,而且出错时的错误报告也更加明显。具体的使用方法很多文章里面也是没有写,在这里特别写一下,

    public static SQLiteHelper dbhelper;
    public static SQLiteDatabase db;

    dbhelper = new SQLiteHelper(this,"4pics.db3",null,1);
    db = dbhelper.getWritableDatabase();

    db.insert(。。。。。。);

    3 查询 查询方法主要是用rawQuery和query,两者中前者的直观性更好,更符合数据库操作语句的风格,而后者在面对动态变量的时候具有更好的操作性。推荐使用后者。

    这两个方法的调用返回的都是游标,游标类似于一个数据库的索引号,就跟你去图书馆借书,你通过查询系统查到的先是一个书号,然后你再根据这个书号找到你所需要借的书。这个游标就是这个意思。

    得到游标之后需要把游标所代表的数据取出来,这时候就需要用到getString()和getInte语句。这两个语句的作用顾名思义就都清楚了。唯一需要特别说明的是,这里取到的游标是一整个游标系,返回值是在最后一个游标上,直接转换是没有结果的。因此需要先动用moveToFirst函数,才能得到真正的数据。

    给个例子吧,

    Cursor c = db.query("res_data", columns, "id=?",parms, null, null, null);
    int nameColumnIndex = c.getColumnIndex("name");
    c.moveToFirst();
    FILE_NAME = c.getString(nameColumnIndex);

    4 SQLite的主要操作中的一些重点就这些了,整体还是很轻量级很好用的,至于是否要结合contentProvider来使用就按照具体的项目所需了,以后有机会再写下Provider的应用吧。

    zhuzheic

  • 相关阅读:
    实例分割综述(单阶段/两阶段/实时分割算法汇总)
    事件相机特征跟踪-EKLT方法
    基于图像的三维物体重建:在深度学习时代的最新技术和趋势综述之性能比较和未来研究方向
    基于图像的三维物体重建:在深度学习时代的最新技术和趋势综述之三维曲面解码
    激光三角测量法在工业视觉检测上的应用
    基于图像的三维物体重建:在深度学习时代的最新技术和趋势之人脸重建和场景分析
    一种简化的线扫相机单维度标定法
    Android 拖动任意View代码
    RecyclerView拖拽view后,itemView发生交换的规则重写
    Python进程池中实现进度条显示
  • 原文地址:https://www.cnblogs.com/zhuzheic/p/2617083.html
Copyright © 2011-2022 走看看