安卓系统android_黎活明_老师+开发培训课件(10).ppt

上传人:asd****56 文档编号:87329833 上传时间:2023-04-16 格式:PPT 页数:7 大小:277KB
返回 下载 相关 举报
安卓系统android_黎活明_老师+开发培训课件(10).ppt_第1页
第1页 / 共7页
安卓系统android_黎活明_老师+开发培训课件(10).ppt_第2页
第2页 / 共7页
点击查看更多>>
资源描述

《安卓系统android_黎活明_老师+开发培训课件(10).ppt》由会员分享,可在线阅读,更多相关《安卓系统android_黎活明_老师+开发培训课件(10).ppt(7页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、高级软件人才实作培训专家高级软件人才实作培训专家!北京传智播客教育 使用SQLiteDatabase操作SQLite数据库除了前面给大家介绍的execSQL()和rawQuery()方法,SQLiteDatabase还专门提供了对应于添加、删除、更新、查询的操作方法:insert()、delete()、update()和query()。这些方法实际上是给那些不太了解SQL语法的菜鸟使用的,对于熟悉SQL语法的程序员而言,直接使用execSQL()和rawQuery()方法执行SQL语句就能完成数据的添加、删除、更新、查询操作。Insert()方法用于添加数据,各个字段的数据使用ContentV

2、alues进行存放。ContentValues类似于MAP,相对于MAP,它提供了存取数据对应的put(String key,Xxx value)和getAsXxx(String key)方法,key为字段名称,value为字段值,Xxx指的是各种常用的数据类型,如:String、Integer等。SQLiteDatabase db=databaseHelper.getWritableDatabase();ContentValues values=new ContentValues();values.put(name,传智播客);values.put(age,4);long rowid=db.

3、insert(“person”,null,values);/返回新添记录的行号,与主键id无关不管第三个参数是否包含数据,执行Insert()方法必然会添加一条记录,如果第三个参数为空,会添加一条除主键之外其他字段值为Null的记录。Insert()方法内部实际上通过构造insert语句完成数据的添加,Insert()方法的第二个参数用于指定空值字段的名称,相信大家对此参数会感到疑惑,此参数的作用是干嘛的?是这样的:如果第三个参数values 为Null或者元素个数为0,Insert()方法必然要添加一条除了主键之外其它字段为Null值的记录,为了满足这条insert语句的语法,insert语

4、句必须给定一个字段名,如:insert into person(name)values(NULL),倘若不给定字段名,insert语句就成了这样:insert into person()values(),显然这不满足标准SQL的语法。对于字段名,建议使用主键之外的字段,如果使用了INTEGER类型的主键字段,执行类似insert into person(personid)values(NULL)的insert语句后,该主键字段值也不会为NULL。如果第三个参数values 不为Null并且元素的个数大于0,可以把第二个参数设置为null。高级软件人才实作培训专家高级软件人才实作培训专家!北京传

5、智播客教育 使用SQLiteDatabase操作SQLite数据库delete()方法的使用:SQLiteDatabase db=databaseHelper.getWritableDatabase();db.delete(person,personid?,new String2);db.close();上面代码用于从person表中删除personid小于2的记录。update()方法的使用:SQLiteDatabase db=databaseHelper.getWritableDatabase();ContentValues values=new ContentValues();value

6、s.put(“name”,“传智播客”);/key为字段名,value为值db.update(person,values,personid=?,new String1);db.close();上面代码用于把person表中personid等于1的记录的name字段的值改为“传智播客”。http:/www.anzhuo.cc/安卓手机论坛 高级软件人才实作培训专家高级软件人才实作培训专家!北京传智播客教育 使用SQLiteDatabase操作SQLite数据库query()方法实际上是把select语句拆分成了若干个组成部分,然后作为方法的输入参数:SQLiteDatabase db=datab

7、aseHelper.getWritableDatabase();Cursor cursor=db.query(person,new Stringpersonid,name,age,name like?,new String%传智%,null,null,personid desc,1,2);while(cursor.moveToNext()int personid=cursor.getInt(0);/获取第一列的值,第一列的索引从0开始 String name=cursor.getString(1);/获取第二列的值 int age=cursor.getInt(2);/获取第三列的值cursor

8、.close();db.close();上面代码用于从person表中查找name字段含有“传智”的记录,匹配的记录按personid降序排序,对排序后的结果略过第一条记录,只获取2条记录。query(table,columns,selection,selectionArgs,groupBy,having,orderBy,limit)方法各参数的含义:table:表名。相当于select语句from关键字后面的部分。如果是多表联合查询,可以用逗号将两个表名分开。columns:要查询出来的列名。相当于select语句select关键字后面的部分。selection:查询条件子句,相当于sele

9、ct语句where关键字后面的部分,在条件子句允许使用占位符“?”selectionArgs:对应于selection语句中占位符的值,值在数组中的位置与占位符在语句中的位置必须一致,否则就会有异常。groupBy:相当于select语句group by关键字后面的部分having:相当于select语句having关键字后面的部分orderBy:相当于select语句order by关键字后面的部分,如:personid desc,age asc;limit:指定偏移量和获取的记录数,相当于select语句limit关键字后面的部分。高级软件人才实作培训专家高级软件人才实作培训专家!北京传智

10、播客教育 使用SQLiteOpenHelper对数据库进行版本管理如果应用使用到了SQLite数据库,在用户初次使用软件时,需要创建应用使用到的数据库表结构及添加一些初始化记录,另外在软件升级的时候,也需要对数据表结构进行更新。在Android系统,为我们提供了一个名为SQLiteOpenHelper的类,该类用于对数据库版本进行管理,该类是一个抽象类,必须继承它才能使用。为了实现对数据库版本进行管理,SQLiteOpenHelper类有两种重要的方法,分别是onCreate(SQLiteDatabase db)和onUpgrade(SQLiteDatabase db,int oldVersi

11、on,int newVersion)当调用SQLiteOpenHelper的getWritableDatabase()或者getReadableDatabase()方法获取用于操作数据库的SQLiteDatabase实例的时候,如果数据库不存在,Android系统会自动生成一个数据库,接着调用onCreate()方法,onCreate()方法在初次生成数据库时才会被调用,在onCreate()方法里可以生成数据库表结构及添加一些应用使用到的初始化数据。onUpgrade()方法在数据库的版本发生变化时会被调用,数据库的版本是由程序员控制的,假设数据库现在的版本是1,由于业务的需要,修改了数据库

12、表的结构,这时候就需要升级软件,升级软件时希望更新用户手机里的数据库表结构,为了实现这一目的,可以把原来的数据库版本设置为2(有同学问设置为3行不行?当然可以,如果你愿意,设置为100也行),并且在onUpgrade()方法里面实现表结构的更新。当软件的版本升级次数比较多,这时在onUpgrade()方法里面可以根据原版号和目标版本号进行判断,然后作出相应的表结构及数据更新。getWritableDatabase()和getReadableDatabase()方法都可以获取一个用于操作数据库的SQLiteDatabase实例。但getWritableDatabase()方法以读写方式打开数据库

13、,一旦数据库的磁盘空间满了,数据库就只能读而不能写,倘若使用的是getWritableDatabase()方法就会出错。getReadableDatabase()方法先以读写方式打开数据库,如果数据库的磁盘空间满了,就会打开失败,当打开失败后会继续尝试以只读方式打开数据库。5ActivityActivityA visual user interface通过view管理UI每一个有用户界面的应用至少包含一个activity一个应用可以有多个activity,其中一个作为main activity用于启动显示Activity通过startActivity或startActivityForResult启动另外的activity6Activity生命周期Activity通过onCreate被创建当一个activity失去焦点,该activity将进入pause状态,系统在内存不足时会将其终止当一个activity被另一个activity覆盖,该activity将进入stop状态,系统在需要内存的时候会将其终止7

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 技术资料 > 其他杂项

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁