zoukankan      html  css  js  c++  java
  • SQLite数据库存储数据

    嵌入式关系型数据库—SQLite,

    SQLite3支持 NULL、INTEGER、REAL(浮点数字)、TEXT(字符串文本)和BLOB(二进制对象)数据类型,

    虽然它支持的类型虽然只有五种,但实际上sqlite3也接受varchar(n)、char(n)、decimal(p,s) 等数据类型,只不过在运算或保存时会转成对应的五种数据类型。 

     

    CREATE TABLE person (personid integer primary key autoincrement, name varchar(20))

     

    SQLite可以解析大部分标准SQL语句,如:
    查询语句:select * from 表名 where 条件子句 group by 分组字句 having ... order by 排序子句
    如:select * from person
            select * from person order by id desc
            select name from person group by name having count(*)>1

    分页SQL与mysql类似,下面SQL语句获取5条记录,跳过前面3条记录
    select * from Account limit 5 offset 3 或者 select * from Account limit 3,5
    插入语句:insert into 表名(字段列表) values(值列表)。如: insert into person(name, age) values(‘传智’,3)
    更新语句:update 表名 set 字段名=值 where 条件子句如:update person set name=‘传智‘ where id=10
    删除语句delete from 表名 where 条件子句。如:delete from person  where id=10

     

     

    使用SQLiteDatabase操作SQLite数据库

    execSQL()方法的使用例子:
    SQLiteDatabase db = ....;
    db.execSQL("insert into person(name, age) values('传智播客', 4)");
    db.close();
     
    rawQuery() 用于执行select语句,使用例子如下: SQLiteDatabase db = ....;
    Cursor cursor = db.rawQuery(“select * from person”, null);
    while (cursor.moveToNext()) {
    int personid = cursor.getInt(0); //获取第一列的值,第一列的索引从0开始
    String name = cursor.getString(1);//获取第二列的值
    int age = cursor.getInt(2);//获取第三列的值
    }
    cursor.close();
    db.close(); 
     
    rawQuery()方法的第一个参数为select语句;第二个参数为select语句中占位符参数的值,如果select语句没有使用占位符,该参数可以设置为null。带占位符参数的select语句使用例子如下:
    Cursor cursor = db.rawQuery("select * from person where name like ? and age=?", new String[]{"%传智%", "4"});


    Cursor是结果集游标,用于对结果集进行随机访问,如果大家熟悉jdbc, 其实CursorJDBC中的ResultSet作用很相似。

    关于 Cursor

    在你理解和使用 Android Cursor 的时候你必须先知道关于 Cursor 的几件事情:

    • Cursor 是每行的集合。
    • 使用 moveToFirst() 定位第一行。
    • 你必须知道每一列的名称。
    • 你必须知道每一列的数据类型。
    • Cursor 是一个随机的数据源。
    • 所有的数据都是通过下标取得。

    关于 Cursor 的重要方法

  • 相关阅读:
    mobilebone.js使用笔记
    js笔记:匿名函数
    java中==和equals和hashcode的区别详解
    JVM基础学习之基本概念、可见性与同步
    面向对象-抽象类和接口解析
    maven使用deploy发布到本地仓库
    Jackson 时间格式化,时间注解 @JsonFormat 与 @DatetimeFormat 用法、时差问题说明
    cxf动态调用webservice设置超时,测试线程安全
    再谈API GateWay服务网关
    微服务实战-使用API Gateway
  • 原文地址:https://www.cnblogs.com/firecode/p/2498023.html
Copyright © 2011-2022 走看看