下载此文档

Android面试之SQLite数据库.docx


文档分类:IT计算机 | 页数:约5页 举报非法文档有奖
1/5
下载提示
  • 1.该资料是网友上传的,本站提供全文预览,预览什么样,下载就什么样。
  • 2.下载该文档所得收入归上传者、原创者。
  • 3.下载的文档,不会出现我们的网址水印。
1/5 下载此文档
文档列表 文档介绍
Android面试之SQLite数据库鹭岛厦门是个很美丽的海滨城市,给我的感觉很舒适和悠闲,据说政府对到那工作的高新技术人才第一年有10万元的奖励,因为这个原因我很有兴趣的参加了一个厦门公司的面试。他们主要是研发VOIP方面的技术,对手机应用的性能优化和音频算法有较高的要求。他们招人的薪资半年内涨了30万元,都一直都没有招到合适的人。为什么呢?因为他们要求技术好的同时,英语也要好。什么才叫好呢?就是可以用流利的英语和国外的团队无障碍交流。这就为难很多程序员了。这里就不再讲英语的励志故事了,我们回到技术面试上。厦门这家公司对技术的要求还是比较高,问了很多对Android机制的理解问题,为什么面试官很在意对机制的理解呢?因为实际的项目中很多性能问题都是由于缺乏对Android运行机制的正确理解的程序员引发的。除了机制问题,现在印象比较深的就是关于SQLite数据库操作的性能优化问题。面试题:如何对SQLite数据库中进行大量的数据插入? Android系统内置了SQLite数据库,并且提供了一整套的API用于对数据库进行增删改查操作。SQLite是一个轻量的、跨平台的、开源的数据库引擎。SQLite每个数据库都是以单个文件(.db)的形式存在,这些数据都是以B-Tree的数据结构形式存储在磁盘上。使用SQLiteDatabase的insert,delete等方法或者execSQL方法默认都开启了事务,。事务的实现是依赖于名为rollbackjournal文件,借助这个临时文件来完成原子操作和回滚功能。大家可以在/data/data//databases/-journal文件。 SQLite想要执行操作,需要将程序中的SQL语句编译成对应的SQLiteStatement,比如"select*fromtable1",每执行一次都需要将这个String类型的SQL语句转换成SQLiteStatement。如下insert的操作最终都是将ContentValues转成SQLiteStatementi: publiclonginsertWithOnConflict(Stringtable,StringnullColumnHack, ContentValuesinitialValues,intconflictAlgorithm){ //省略部份代码 SQLiteStatementstatement=newSQLiteStatement(this,(),bindArgs); try{ (); }finally{ (); } }finally{ releaseReference(); } } 对于批量处理插入或者更新的操作,我们可以重用SQLiteStatement,使用SQLiteDatabase的beginTransaction()方法开启一个事务,样例如下: try { (); SQLiteStatementstat=pileStatement(insertSQL); //插入10000次 for(inti=0;i<100

Android面试之SQLite数据库 来自淘豆网www.taodocs.com转载请标明出处.

相关文档 更多>>
非法内容举报中心
文档信息
  • 页数5
  • 收藏数0 收藏
  • 顶次数0
  • 上传人文库旗舰店
  • 文件大小35 KB
  • 时间2020-03-25