Android oncreate onupgrade什么时候被调用

简介:

在学习Android数据库SQLite之前,必须意识到这一点,目前在Android系统中集成的是SQLite3 版本,SQLite是一个开源的嵌入式数据库,他支持NULL、INTEGER、REAL、TEXT和BLOB数据类型,不支持静态数据类型,而是使用列 关系。可以把SQLite数据库近似看成是一种无数据类型的数据库,你可以把任何类型的资料存放在飞Integer类型的主键之外的其他字段上去,另外字 段的长度也是没有限度的。不过建议一定要在编写SQL语句的时候,按照标准的SQL语法,因为这样在别人看你的代码时候,便于更好的理解。

       SQLite可以解析大部分的标准SQL语句:

       建表语句:create table 表名(主键名 integer primary key autoincrement,其他列名及属性) 查询语句:select * from 表名 where 条件子句 group by 分组子句 having…order by 排序子句。 分页语句:select * from 表名 limit 记录数 offset 开始位置 或者 select * from 表名 limit 开始位置,记录数 插入语句:insert into 表名(字段列表) values (值列表) 更新语句:update 表名 set 字段名=值 where 条件子句 删除语句:delete from 表名 where 条件子句 

        删表语句:drop table if exists 表名

        而为了方便对数据库进行版本管理,建议在开发项目的时候使用SQLiteOpenHelper类,它提供了两个重要的方法,分别是 onCreate(SQLiteDatabase db)和onUpgrade(SQLiteDatabase db,int oldVersion,int vewVersion),前者用于初次使用软件时生成数据库,后者用于升级软件时更新数据库表结构。提示一下,在软件升级前,最好对原有数据进行备份,在 新表建好后把数据导入新表中。实现了这两个方法,就可以用他的getWritableDatabase()和getReadableDatabase() 来获得数据库。这里提醒一句,在使用SQLite的进行查询时最好用占位符“?”来代替各值,例如:

 
  1. SQLiteDatabase db=databaseHelper.getWritableDatabase(); 
  2. db.execSQL(“update person set name=?,age=? where personid=?”,new Obect{person.getName(),person.getAge(),person.getId()}); 

execSQL()方法是用来执行除查找语句外的sql语句,查找语句用rawQuery()来执行它会放回一个Cursor。当然,他还提供了封装好的Java类方法供我们操作。具体方法不介绍了,可以直接查看文档中SQLiteDatabase类的用法。

        那要查看数据库中的内容怎么办呢?一种方法是把数据库文件导出到电脑中,然后用SQLite Developer这个软件即可打开查看其中的结构和内容。另一种是直接用命令行查看(推荐),可以通过adb shell进入模拟器的Linux控制台,找到数据库文件,用#sqlite3 数据库名 的方式进入数据库,如此即可查看数据库中的内容。



本文转自sucre03 51CTO博客,原文链接:http://blog.51cto.com/sucre/867312,如需转载请自行联系原作者

相关文章
|
移动开发 Java Android开发
uni-app&H5&Android混合开发三 || uni-app调用Android原生方法的三种方式
uni-app&H5&Android混合开发三 || uni-app调用Android原生方法的三种方式
1356 0
uni-app&H5&Android混合开发三 || uni-app调用Android原生方法的三种方式
|
JavaScript 前端开发 Android开发
JS(Javascript)调用Android原生方法三步走
JS(Javascript)调用Android原生方法三步走
465 0
|
Java Android开发
android 接入USB输入设备后应用重跑onCreate
android 接入USB输入设备后应用重跑onCreate
94 0
|
JavaScript Android开发 iOS开发
html通过js调用ios或android代码
html通过js调用ios或android代码
57 0
|
Android开发
Android Studio中添加Flutter模板直接调用
Android Studio中添加Flutter模板直接调用
155 0
Android Studio中添加Flutter模板直接调用
|
Android开发
Android实现调用系统相机录像及实现录音
Android实现调用系统相机录像及实现录音
584 0
|
Java 编译器 API
Android使用NDK(从java调用本地函数'JNI')
Android使用NDK(从java调用本地函数'JNI')
194 0
Android使用NDK(从java调用本地函数'JNI')
|
JavaScript Android开发 iOS开发
html通过js调用ios或android代码
html通过js调用ios或android代码
|
定位技术 开发工具 Android开发
Android 地图导航调用百度地图、高德地图、腾讯地图
Android 地图导航调用百度地图、高德地图、腾讯地图
1051 0
Android 地图导航调用百度地图、高德地图、腾讯地图
|
安全 Android开发
Android开发之调用系统设置界面
Android开发之调用系统设置界面
160 0