Android SQLite 数据库详细介绍
Android SQLite 数据库详细介绍我们在编写数据库应用软件时,需要考虑这样的问题:因为我们开发的软件可能会安装在很多用户的手机上,如果应用使用到了SQLite数据库,我们必须在用户初次使用软件时创建出应用使用到的数据库表结构及添加一些初始化记录,另外在软件升级的时候,也需要对数据表结构进行更新。那么,我们如何才能实现在用户初次使用或升级软件时自动在用户的手机上创建出应用需要的数据库表呢?总不能让我们在每个需要安装此软件的手机上通过手工方式创建数据库表吧?因为这种需求是每个数据库应用都要面临的,所以在Android系统,为我们提供了一个名为SQLiteOpenHelper的抽象类,必须继承它才能使用,它是通过对数据库版本进行管理来实现前面提出的需求。下面我们来看一下Android SQLite 最常用的几个类和那些方法:一、SQLiteOpenHelper :onCreate(SQLiteDatabase db);用于初次使用软件时生成数据库表。 当调用SQLiteOpenHelper的getWritableDatabase()或者getReadableDatabase()方法获取用于操作数据库的SQLiteDatabase实例的时候, 如果数据库不存在,Android系统会自动生成一个数据库,接着调用onCreate()方法,onCreate()方法在初次生成数据库时才会被调用, 在onCreate()方法里可以生成数据库表结构及添加一些应用使用到的初始化数据onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion); 在数据库的版本发生变化时会被调用,一般在软件升级时才需改变版本号getWritableDatabase(); getReadableDatabase(); 两方法都可以获取一个用于操作数据库的SQLiteDatabase实例。但getWritableDatabase() 方法以读写方式打开数据库,一旦数据库的磁盘空间满了,数据库就只能读而不能写,倘若使用getWritableDatabase()打开数据库就会出错。getReadableDatabase()方法先以读写方式打开数据库,如果数据库的磁盘空间满了,就会打开失败,当打开失败后会继续尝试以只读方式打开数据库。二、SQLiteDatabase:1、db.insert(table, nullColumnHack, values) 第一个参数是表名称,第二个参数是空列的默认值,第三个参数是ContentValues类型的一个封装了列名称和列值的Map;2、db.delete(table, whereClause, whereArgs) 第一个参数是表名称,第二个参数是删除条件,第三个参数是删除条件值数组3、db.update(table, values, whereClause, whereArgs) 第一个参数是表名称,第二个参数是更行列ContentValues类型的键值对(Map),第三个参数是更新条件(where字句),第四个参数是更新条件数组4、db.query(table, columns, selection, selectionArgs, groupBy, having, orderBy)(下面有对该方法详细讲解)5、db.execSQL(sql) // 执行任何SQL语句6、db.rawQuery(sql, selectionArgs)对第四个方法详细讲解:Cursor query(table, columns, selection, selectionArgs, groupBy, having, orderBy, limit) 各个参数的意义说明: ①table:表名称 ②columns:列名称数组 ③selection:条件字句,相当于where ④selectionArgs:条件字句,参数数组 ⑤groupBy:分组列 ⑥having:分组条件 ⑦orderBy:排序列 ⑧limit:分页查询限制三、Cursor: Cursor是一个游标接口,提供了遍历查询结果的方法,如移动指针方法move(),获得列值方法getString()等.Cursor游标常用方法:getCount() 总记录条数 isFirst() 判断是否第一条记录 isLast() 判断是否最后一条记录 moveToFirst() 移动到第一条记录 moveToLast() 移动到最后一条记录 move(int offset) 移动到指定记录 moveToNext() 移动到下一条记录 moveToPrevious() 移动到上一条记录 getColumnIndexOrThrow(String columnName) 根据列名称获得列索引 getInt(int columnIndex) 获得指定列索引的int类型值 getString(int columnIndex) 获得指定列缩影的String类型值
Android SQLite 数据库详细介绍相关推荐
- android SQLite数据库的使用
今天,简单讲讲android如何使用SQLite数据库. 最近,自己在做一个功能时又用到了SQLite数据库,发现自己还是掌握的不很全面.其实之前的app里面也一直用到了数据库,但是自己没有花时 ...
- Android SQLite数据库版本升级(分逐级升级和跨版本升级)
参考:Android Sqlite数据库跨版本升级 保存之前数据 本文说的数据库升级是基于Android原生APISQLiteOpenHelper实现的逻辑,不涉及第三方库.其实如果使用官方推荐的Ro ...
- android sqlite数据库加密,(转)SQLite数据库的加密
1.创建空的SQLite数据库. //数据库名的后缀你可以直接指定,甚至没有后缀都可以 //方法一:创建一个空sqlite数据库,用IO的方式 FileStream fs = File.Create( ...
- Tempdb数据库详细介绍
Tempdb数据库详细介绍 一.Tempdb简介 tempdb是SQLServer的系统数据库一直都是SQLServer的重要组成部分,用来存储临时对象.可以简单理解tempdb是SQLServer的 ...
- android 数据库表格数据库数据库中,Android SQLite数据库中的表详解
Android SQLite数据库 前言 以前写PHP的时候,内置了print_r()和var_dump()两个函数用于打印输出任意类型的数据内部结构,现在做Android的开发,发现并没有这种类似的 ...
- 利用SQLChiper对Android SQLite数据库加密
利用SQLChiper对Android SQLite数据库加密 前言: 上篇文章讲了Android studio+SQLCipher加密SQLite数据库的几个坑,跳过这几个坑,那么SQLCipher ...
- android 获取位置数据库,尝试从webview获取位置时,Android“SQLite数据库无法从/CachedGeoposition.db加载”错误...
我正在创建一个使用webkit和chrome客户端的android应用程序.我希望能够在网页请求时获取当前位置.我设置的网页适用于普通浏览器就好了.然而,当我尝试访问该网页WebKit中,我不断收到此 ...
- Android SQLite数据库导出/导入Excel
Android SQLite数据库导出/导入Excel 前言 框架 使用方法 添加依赖 声明权限 导出数据库到Excel 声明实例 配置导出内容 导出监听 导入Excel到数据库 声明实例 导入监听 ...
- Android Sqlite数据库多表联合查询
Android Sqlite数据库多表联合查询示例 工作上用数据库存储文件还是很便利的,所以有时候发现一张表存储数据感觉数据结构不是很清晰的时候,就需要新加第二张表或者多张表来进行联合查询对象信,一般 ...
最新文章
- vue java 使用AES 前后端加密解密
- matlab 神经网络ann用于分类方法
- lombok链式调用_记一次使用 Lombok 翻车造成的事故!
- Apache Flink 零基础入门(六)Flink核心概念
- Enum in C#
- 【MySQL】MySQL 8不支持查询缓存
- 如何获得onblur中的值_使用带有onBlur的输入字段和来自Reactjs JSX中的状态块输入的值?...
- ClickHouse到底有什么本事呢?互联网公司如此追捧
- 跨境电商ERP系统有几大功能?
- 八皇后问题(C语言)
- 解决 Vue 重复点击相同路由,出现 Uncaught (in promise) NavigationDuplicated: Avoided redundant navigation 问题
- 基于flash AS3.0 的BASE64编码与解码类
- java 矩阵题目_java练习本(20190611)
- elasticsearch同义词配置elasticsearch-analysis-dynamic-synonym
- linux7.4邮件服务器,CentOS7 基于Postfix Dovecot Extmail 搭建邮件服务器
- 九歌计算机在线作诗硬件原理,清华大学矣晓沅:「九歌」——基于深度学习的中国古典诗歌自动生成系统...
- 微信公号DIY:一小时搭建微信聊天机器人
- 无线上外网,有线上内网的方式
- 笔记本“电源已接通,未充电”的解决办法 win7
- ipad发布会ipad_iPad诞生十周年