Android基础------SQLite数据库(一)
1.SQLite介绍
SQLite是一款非常流行的嵌入式数据库,它支持SQL操作,并且只用很少的内存。
Android在运行时集成了SQLite,所有每个Android应用程序都可以使用SQLLite数据库。
对熟悉SQL的开发人员来说,使用SQLite相当简单。
支持数据类型
null、integer、real、text、blob
2.使用SQLite
首次使用SQLite需要创建数据库和表,以及一些初始化数据。
Android提供了抽象类SQLiteOpenHelper完成此类功能。
2.1 SQLiteOpenHelper中的方法
onCreate(SQLiteDatabase db) //第一次创建数据库时被调用,比如表只需要创建一次,那么这个执行语句就可以写在onCreate()里面
onUpgrade(SQLiteDatabase db,int arg1,int arg2) //系统发现现有数据库版本不同,即会被调用
新建一个类,继承SQLiteOpenHelper,同时实现onCreate()和onUpgrade()方法,以及一个构造方法
- public class MyOpenHelper extends SQLiteOpenHelper {
- /**
- *
- * @param context 上下文
- * @param name 数据库文件名称
- * @param factory 如果为null则使用默认方式
- * @param version 版本号,后期可以修改,但只能往上升,不能往下降
- */
- public MyOpenHelper(Context context, String name, SQLiteDatabase.CursorFactory factory, int version) {
- super(context, name, factory, 1);
- }
- /**
- * 当数据库文件不存在的时候,创建数据库文件,并且是第一次使用
- * @param sqLiteDatabase
- */
- @Override
- public void onCreate(SQLiteDatabase sqLiteDatabase) {
- Log.i("onCreate","调用onCreate");
- }
- /**
- * 只有版本更新时调用
- * @param sqLiteDatabase
- * @param i 旧版本号
- * @param i1 当前版本号
- */
- @Override
- public void onUpgrade(SQLiteDatabase sqLiteDatabase, int i, int i1) {
- Log.i("onUpgrade","调用onUpgrade");
- }
- }
(在android系统中,每个应用程序的SQLite数据库都被保存在各自的/data/data/<包名>/databases目录下,默认情况下,都是私有的,仅允许当前应用程序访问。)
activity_main.xml中加个按钮:
- <Button
- android:id="@+id/button"
- android:layout_width="match_parent"
- android:layout_height="wrap_content"
- android:text="创建数据库"
- android:onClick="test_01"/>
MainActivity:
- public void test_01(View view){
- //实例化
- MyOpenHelper myOpenHelper = new MyOpenHelper(this,"mybase.db",null,1);
- //获取一个SQLiteDatabase对象
- SQLiteDatabase sqLiteDatabase = myOpenHelper.getReadableDatabase();
- //sql语句,暂时忽略不写
- String sql = " ";
- //执行sql语句
- sqLiteDatabase.execSQL(sql);
- //关闭
- sqLiteDatabase.close();
- myOpenHelper.close();
- }
2.2 SQLiteDatabase对象说明
2.2 1 通过此对象就可以调用SQLiteDatabase的方法来进行数据库操作,例如创建表、插入数据、删除数据等操作。
2.2.2 获取SQLiteDatabase对象的方法
getWritableDatabase() //以读写的方式打开数据库,一旦磁盘空间满了,数据库就只能读不能写,倘若再次打开数据就会报错
getWritableDatabase() //先以读写的方式打开数据库,如果磁盘满了就会打开失败,当打开失败后会继续尝试以只读方式打开数据库。
(SQLiteDatabase既代表了与数据库的连接,又能执行sql语句)
Android基础------SQLite数据库(一)的更多相关文章
- android基础---->SQLite数据库的使用
SQLite 一个非常流行的嵌入式数据库,它支持 SQL 语言,并且只利用很少的内存就有很好的性能.此外它还是开源的,任何人都可以使用它.许多开源项目((Mozilla, PHP, Python)都使 ...
- Android基础------SQLite数据库(二)
1.操作SQLite数据库 1.1 execSQL() 可以执行insert.delete.update和CREATE TABLE之类有更改行为的SQL语句 1.2 rawQuery() 可以执行se ...
- Qt for Android 打包 SQLite 数据库
Qt for Android 调用 SQLite 数据库时, 怎样将已经存在的数据库附加到 APK 中? 直接在你项目里面的Android源码的根目录下新建一个文件夹assets, 数据库就可以放里面 ...
- Android实现SQLite数据库联系人列表
Android实现SQLite数据库联系人列表 开发工具:Andorid Studio 1.3 运行环境:Android 4.4 KitKat 工程内容 实现一个通讯录查看程序: 要求使用SQLite ...
- Android中SQLite数据库操作(1)——使用SQL语句操作SQLite数据库
下面是最原始的方法,用SQL语句操作数据库.后面的"Android中SQLite数据库操作(2)--SQLiteOpenHelper类"将介绍一种常用的android封装操作SQL ...
- android中sqlite数据库的基本使用和添加多张表
看了很多关于android使用sqlite数据库的文章,很多都是介绍了数据库的建立和表的建立,而表通常都是只建立一张,而实际情况我们用到的表可能不止一张,那这种情况下我们又该怎么办呢,好了,下面我教大 ...
- android 一个SQLite数据库多个数据表的基本使用框架 (带demo)
android 一个SQLite数据库多个数据表(带demo) 前言 demo演示 一.搭建 二.建立实体类 三.建立数据库操作类 ...
- android安卓Sqlite数据库实现用户登录注册
看了很多别人写的安卓SQlite数据的操作代码,一点也不通俗易懂,我觉得我写的不错,而且安卓项目也用上了,所以在博客园里保存分享一下!建立一个类 并继承SQLiteOpenHelper public ...
- 我的Android六章:Android中SQLite数据库操作
今天学习的内容是Android中的SQLite数据库操作,在讲解这个内容之前小编在前面有一篇博客也是讲解了SQLite数据库的操作,而那篇博客的讲解是讲述了 如何在Window中通过DOM来操作数据库 ...
随机推荐
- ACM数论-卡特兰数Catalan
Catalan 原理: 令h(0)=1,h(1)=1,catalan 数满足递归式: (其中n>=2) 另类递推公式: 该递推关系的解为: (n=1,2,3,...) 卡特兰数的应用实质上都是递 ...
- 15-oauth2+oidc实现Server部分
1-我们使用之前项目的mvcCookieAuthSampe2进行改造 1.1 增加IdentityServer4 2-增加Config.cs文件,对IdentityServer提供相关的配置数据 u ...
- 推荐 的FPGA设计经验(1)组合逻辑优化
主要内容摘自Quartus prime Recommended Design Practices For optimal performance, reliability, and faster ti ...
- 20145202马超《java》实验5
两人一组结对编程: 参考http://www.cnblogs.com/rocedu/p/6766748.html#SECDSA 结对实现中缀表达式转后缀表达式的功能 MyBC.java 结对实现从上面 ...
- centos7 的防火墙命令调整了
CentOS 7.0默认使用的是firewall作为防火墙,这里改为iptables防火墙.firewall:systemctl start firewalld.service#启动firewalls ...
- linux下免安装版本mysql5.5 配置
进入/usr/local #cd /usr/local 下载 #wget http://dev.mysql.com/get/Downloads/MySQL-5.5/mysql-5.5.39-linux ...
- Android性能优化来龙去脉总结
WeTest 导读 一款app除了要有令人惊叹的功能和令人发指交互之外,在性能上也应该追求丝滑的要求,这样才能更好地提高用户体验. 以下是本人在工作中对经历过的性能优化的一些总结,依据故事的发展路线, ...
- Charles使用及mock数据
1.下载charles 3.9.2[破解版地址:https://download.csdn.net/my] 下方有一种方法可破解4.2以前的版本 // Charles Proxy License // ...
- 【C++模版之旅】项目中一次活用C++模板(traits)的经历 -新注解
问题与需求: 请读者先看这篇文章,[C++模版之旅]项目中一次活用C++模板(traits)的经历. 对于此篇文章提出的问题,我给出一个新的思路. talking is cheap,show me t ...
- javaee开发工具及环境配置过程
在配置javaee开发环境的过程中遇到过很多问题,在此系统的整理一下我之前的配置过程 注:配置过程学习自<JSP&Servlet学习笔记(第二版)>详细过程可以阅读此书.在文章的最 ...