android sqlite用法,android使用sqlite数据库

  android sqlite用法,android使用sqlite数据库

  SQLite是Android平台软件开发中经常使用的数据库产品。SQLite作为一个轻型数据库,是为嵌入式而设计的,目前已经在很多嵌入式产品中使用。占用资源非常低,在嵌入式设备中,可能只需要几百K的内存。我们来看看Android平台的SQlite 3的使用情况。

  以下概念是在Android平台的SQlite限制下理解的:

  数据库的基本概念

  SQlite通过文件保存数据库,文件就是数据库。

  数据库还包含几个表;

  每个表包含多条记录;

  每条记录由多个字段组成;

  每个字段都有对应的值;

  每个值可以指定类型。

  数据库名称是文件名;表单有自己的名称;该记录没有名称;每个字段都有一个名称。在SQlite中,没有记录顺序的概念,也没有第一和第二这样的概念。查询只能得到符合条件的记录。我们通过执行SQL指令来操作数据库。

  Android平台下的数据库相关类

  SQLiteOpenHelper抽象类:通过从该类继承实现user类,提供数据库打开关闭等操作功能。

  SQLiteDatabase数据库访问类:执行向数据库中插入记录、查询记录等操作。

  SQLiteCursor查询结构操作类:用于访问查询结果中的记录。

  创建数据库

  假设用一个数据库来存储一个表,表中存储了许多记录。每个记录包含三个字段,即:ID、姓名和年龄。从SQLiteOpenHelper继承并实现了一个类,对数据库的所有操作都封装在这个类中。

  构造者:

  1.公共DbHelper(上下文Context,字符串名称,

  CursorFactory工厂,int版本){

  2.超级(上下文、名称、工厂、版本);

  3.}

  该函数中的参数名是数据库名,即数据库文件名;版本从1开始,以后数据库的表和字段发生变化时,用户可以对这个版本进行改进,从而触发onUpgrade()达到升级旧数据的效果。

  在onCreate函数中创建一个表:

  1.public void onCreate(SQLite database db){

  2.StringBuilder SQL=new StringBuilder();

  3.sql.append(“创建表”);

  4.sql.append(TBL名);

  5.SQL . append(();

  6.sql.append(FIELD_ID 文本主键不为空,);

  7.sql.append(FIELD_NAME TEXT,);

  8.SQL . append(FIELD _ AGE INTEGER );

  9.SQL . append(););

  10.db . exec SQL(SQL . tostring());

  11.}

  onCreate函数只会在第一次创建数据库时被调用,所以这里适合做一些数据库初始化操作。

  最后,上述函数实际上具有执行SQL语句的效果:

  创建表mytable (id文本主键不为空,名称文本,年龄整数);

  向表中添加数据

  向表中添加数据有两种方式,一种是通过SQLiteDatabase提供的execSQL函数直接执行SQL指令;一个是SQLiteDatabase提供的insert函数,封装了SQL语句,方便用户使用。

  通过execsql( insert into my table values( idstr , namestr ,20););您可以插入一条记录,

  当插入记录时发生错误,将抛出异常进行处理。

  通过insert函数:insert函数需要一个ContentValues类型的值,类似于hashmap。一个键和一个值是成对的。是关键字段名称。

  content values v=new content values();

  v.put(id , 101 );

  v.put(名称,用户101 );

  v . put(‘年龄’,44);

  mDb.insert(mytable , null ,v);

  如果V中的键没有完全指定所有字段,比如less name或者less id,那么记录能否成功插入取决于创建表时的字段限制,比如less name,那么这条记录会被插入,但是name字段的值为NULL;如果缺少id,则不会插入记录,因为在创建记录时指定了NOT NULL。

  您可以通过以下说明查看结果:

  Adb shell执行并进入shell;

  cd /data/data/cn.demo.sql

  Sqlite3 database.db进入Sqlite操作界面。帮助可以查看命令帮助。转储可以看到数据库中的数据。

  为了方便起见,可以自定义一个插入函数,通过参数传入值,ContentValues的设置在函数内部实现。

  1.public void insert(字符串id,字符串名称,整数年龄){

  2.if(mDb==null)mDb=getWritableDatabase();

  3.content values v=new content values();

  4.v.put(id ,id);

  5.v.put(名,名);

  6.if(年龄0) v.put(年龄,年龄);

  7.mDb.insert(TBL名,空,v);

  从表中查询记录

  SQL语句:从表中选择列列表,其中expr order by column list通过SQLiteDatabase类的query()函数:

  1.游标SQLiteDatabase.query(字符串表,

  2.字符串[]列,字符串选择,字符串[]选择Args,

  3.String groupBy,String having,String order by);

  参数:

  要更新的记录的表名。

  值要更新的字段值。

  Where子句Where子句。哪些记录被更新。

  WhereArgs Where子句“?”替换字符串。

  在执行更新操作时,如果只有一些字段被赋值,那么在更新后,未被赋值的字段仍将保持其原始值。

  从表中删除记录:

  int SQLiteDatabase.delete(字符串表,字符串table子句,字符串[]

  where args);

  从SQLite创建和查询的全过程可以看出,在Android平台上,由于SQLite的特性,一切都是以文件为基础的,没有顺序的概念。我们可以通过查询得到符合条件的记录,通过SQL指令操作数据库。另外要背熟几个在Android平台上操作SQLite的类:SQLiteOpenHelper抽象类,SQLiteDatabase数据库访问类,SQLiteCursor查询结构操作类。

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

相关文章阅读

  • 关系型数据库与非关系型数据库简介一样吗,关系型数据库非关系型数据库有哪些
  • 关系型数据库与非关系型数据库简介一样吗,关系型数据库非关系型数据库有哪些,关系型数据库与非关系型数据库简介
  • 关于redis数据库入门详细介绍图片,redis数据库的使用,关于Redis数据库入门详细介绍
  • 使用php连接mysql数据库,php连接数据库的方法
  • 使用php连接mysql数据库,php连接数据库的方法,一文详解PHP连接MySQL数据库的三种方式
  • 什么是分库分表,为什么要进行分库分表-,分库分表的区别,数据库分库分表是什么,什么情况下需要用分库分表
  • vb中adodb连接数据库,
  • treeview控件绑定数据,wpf treeview数据绑定,详解TreeView绑定数据库
  • sql的多表查询,数据库如何实现多表查询
  • SQL数据库的图形管理界面工具是,sql图形界面创建数据库
  • SQL数据库的图形管理界面工具是,sql图形界面创建数据库,SQLServer2019 数据库的基本使用之图形化界面操作的实现
  • sql数据库定时备份怎么弄,mysql 定期备份
  • sql数据库定时备份怎么弄,mysql 定期备份,MySQL 数据库定时备份的几种方式(全面)
  • sqlserver的nvarchar和varchar,数据库varchar和nvarchar
  • sqlserver的nvarchar和varchar,数据库varchar和nvarchar,SQL中varchar和nvarchar的基本介绍及其区别
  • 留言与评论(共有 条评论)
       
    验证码: