Android移动应用开发教程 课件 6.3、SQLite数据库_第1页
Android移动应用开发教程 课件 6.3、SQLite数据库_第2页
Android移动应用开发教程 课件 6.3、SQLite数据库_第3页
Android移动应用开发教程 课件 6.3、SQLite数据库_第4页
Android移动应用开发教程 课件 6.3、SQLite数据库_第5页
已阅读5页,还剩16页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

撞色几何设计PPT模版Android汇报人:XXX目录1234SQLite介绍手动建库代码建库数据操作5案例实现01章节PARTSQLite介绍添加相关标题文字添加相关标题文字添加相关标题文字添加相关标题文字

是一款轻型数据库,它的设计目标是适用于嵌入式设备的,目前已经在很多嵌入式产品中使用,它占用的资源非常少,在嵌入式设备中,只占用几百KB的内存。SQLite介绍SQLite数据库使用SQL命令提供了完整的关系型数据库能力,每个使用SQLite的应用程序都有一个该数据库的实例,并且在默认情况下仅限当前应用使用。数据库存储在Android设备的/data/data/<package_name>/databases目录中,使用SQLite数据库的一般操作步骤是:(1)创建数据库;(2)打开数据库;(3)创建表;(4)完成数据的各种操作,包括向表中添加数据、从表中删除数据、修改表中的数据、删除指定表、查询表中的某条数据等;(5)关闭数据库、删除数据库等。02章节PART手工建库添加相关标题文字添加相关标题文字添加相关标题文字添加相关标题文字

手动建立数据库指的是使用sqlite3工具,通过手工输入命令行完成数据库的建立过程,sqlite3工具被集成在AndroidSDK的Tools目录中,用户在命令行界面中输入sqlite3可启动sqlite3工具adbshell#cd/data/data#mkdirdatabases#cddatabases#sqlite3mydb.dbcreatetableuser(codevarchar(15),namevarchar(16));insertintouser(code,name)values('20130220','张某某');select*fromuser;手动建库命令说明.bailON|OFF遇到错误时停止,缺省为OFF.databases显示数据库名称和文件位置.dumptable将数据表以SQL文本形式导出.echoON|OFF开启和关闭回显.exit退出.explainON|OFF开启或关闭适当输出模式,如果开启模式将更改为column,并自动设置宽度.header(s)ON|OFF开启或关闭标题显示.help显示帮助信息.importFILETABLE将数据从文件导入表中.indicesTABLE显示表中所的列名.loadFILEENTRY导入扩展库.modeTABLE设置输入格式.nullvalueSTRING打印时使用STRING代替NULL.outputFILENAME将输入保存到文件.outputstdout将输入显示在屏幕上.promptMAINCONTINUE替换标准提示符.quit退出.readFILENAME在文件中执行SQL语句.schemaTABLE显示表的创建语句.separatorSTRING更改输入和导入的分隔符.show显示当前设置变量值.tablesPATTERN显示符合匹配模式的表名.timeoutMS尝试打开被锁定的表MS毫秒.timerON|OFF开启或关闭CPU计时器.widthNUM设置column模式的宽度使用DatabaseInspector查看数据库运行你的应用(确保数据库已经创建)。打开DatabaseInspector:在AndroidStudio中,点击View→ToolWindows→AppInspection。选择DatabaseInspector选项卡。选择应用进程:

•在Database面板中,找到你的应用进程。

•展开data/data//databases/,选择你的数据库。03章节PART代码建库添加相关标题文字添加相关标题文字添加相关标题文字添加相关标题文字

Android提供了SQLiteOpenHelper类来创建一个数据库,只要继承SQLiteOpenHelper类,就可以轻松地创建数据库。实现三个方法:

构造函数:调用父类SQLiteOpenHelper的构造函数。这个方法需要四个参数:上下文环境(例如:Activity),数据库名字,一个可选的游标工厂(通常是Null),一个代表正在使用的数据库模型版本的整数。

onCreate()方法:它需要一个SQLiteDatabase对象作为参数,根据需要对这个对象填充表和初始化数据。onUpgrage()方法:它需要三个参数:SQLiteDatabase对象,一个旧的版本号和一个新的版本号。代码建库在/data/data/[PACKAGE_NAME]/databases目录下生成数据库文件publicclassMyDBHelper

extendsSQLiteOpenHelper

{privatestaticfinalStringDATABASENAME="mydb.db";//数据库名称privatestaticfinalintDATABASEVERSION=1;//数据库版本privatestaticfinalStringTABLENAME="user";//数据表名称publicMyDBHelper(Contextcontext){//定义构造

//调用父类构造super(context,DATABASENAME,null,DATABASEVERSION);}/**当数据库首次创建时执行该方法,一般将创建表等初始化操作放在该方法中执行

**/publicvoidonCreate(SQLiteDatabase

db){//创建数据表Stringsql

="CREATETABLE"+TABLENAME+"("+"codeVARCHAR(14)PRIMARYKEY,"+"nameVARCHAR(14)NOTNULL,"+"birthdayDATENOTNULL)";//SQL语句db.execSQL(sql);//执行SQL语句}//当打开数据库时传入的版本号与当前的版本号不同时会调用该方法publicvoidonUpgrade(SQLiteDatabase

db,intoldVersion,intnewVersion){Stringsql

="DROPTABLEIFEXISTS"+TABLENAME;

//SQL语句db.execSQL(sql);//执行SQL语句this.onCreate(db);//创建表}}类定义好后,在一个Activity类的OnCreate()方法中进行如下代码调用:protectedvoidonCreate(BundlesavedInstanceState){ super.onCreate(savedInstanceState);//父类onCreate() setContentView(R.layout.activity_main);//默认布局管理器

MyDBHelperhelper=newMyDBHelper(this); //定义数据库辅助类

helper.getWritableDatabase(); //以修改方式打开数据库

}04章节PART数据操作添加相关标题文字添加相关标题文字添加相关标题文字添加相关标题文字数据操作是指对数据的添加、删除、查找和更新的操作。有两种方法可以给表添加数据。一种方法就如前面创建表一样,可以使用execSQL()方法执行INSERT、UPDATE、DELETE等语句来更新表的数据。execSQL()方法适用于所有不返回结果的SQL语句。另一种方法是使用SQLiteDatabase对象的insert(),update(),delete()方法。数据操作publicclassSampleActivityextendsActivity{ privateSQLiteDatabasedb=null; @Override protectedvoidonCreate(BundlesavedInstanceState){ super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); MyDBHelperhelper=newMyDBHelper(this); //定义数据库辅助类 db=helper.getWritableDatabase(); //以修改方式打开数据库

db.execSQL("INSERTINTOuser(code,name,birthday)VALUES('20121208','张三','1993.01.02')"); ContentValuescv=newContentValues();//定义ContentValues对象 cv.put("code","20121209");//设置code字段内容 cv.put("name","张五");//设置name字段内容 cv.put("birthday","1993-01-01");//设置birthday字段内容 db.insert("user",null,cv);//插入操作。db.close();//关闭数据库操作 }}数据操作(1)插入数据//使用execSQL更新一条记录 db.execSQL("updateusersetcode='20121210',name='李平',birthday='1994.01.01'wherecode='20121208'");ContentValuescv=newContentValues();//定义ContentValues对象 cv.put("code","20121209");//设置code字段内容 cv.put("name","张五");//设置name字段内容 cv.put("birthday","1993-01-01");//设置birthday字段内容 db.insert("user",null,cv);//增加操作db.update("user",cv,"code=?","20121224");数据操作(2)更新数据//删除条件为null,表示删除表中的所有数据db.delete("user",null,null);//指明了需要删除数据的code值,此时delete()函数的返回值表示被删除的数据的数量db.delete("user","code='20121224'",null);数据操作(3)删除数据一种是使用rawQuery()直接调用SELECT语句;另一种使用query()方法构建一个查询。Cursorc=db.rawQuery("SELECTcode,nameFROMuserWHEREcode='20121211'",null);String[]columns={"code","name"};String[]parms={"20121211"};Cursorresult=db.query("user",columns,"code=?",parms,null,null,null);数据操作(4)查询功能函数说明moveToFirst将指针移动到第一条数据上moveToNext将指针移动到下一条数据上moveToPrevious将指针移动到上一条数据上getCount获取集合的数据数量getColumnIndexOrThrow返回指定属性名称的序号,如果属性不存在则产生异常getColumnName返回指定序号的属性名称getColumnNames返回属性名称的字符串数组getColumnIndex根据属性名称返回序号moveToPosition将指针移动到指定的数据上getPosition返回当前指针的位置listView=newListView(this);//定义ListView//将数据包装,每行显示一条数据

listView.setAdapter((ListAdapter)newArrayAdapter<String>(this,android.R.layout.simple_expanda

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论