Android-SQLite使用.docx_第1页
Android-SQLite使用.docx_第2页
Android-SQLite使用.docx_第3页
Android-SQLite使用.docx_第4页
免费预览已结束,剩余1页可下载查看

下载本文档

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

文档简介

SQLite简介Google为Andriod的较大的数据处理提供了SQLite,他在数据存储、管理、维护等各方面都相当出色,功能也非常的强大。SQLite具备下列特点:1.轻量级使用 SQLite 只需要带一个动态库,就可以享受它的全部功能,而且那个动态库的尺寸想当小。2.独立性SQLite 数据库的核心引擎不需要依赖第三方软件,也不需要所谓的“安装”。3.隔离性SQLite 数据库中所有的信息(比如表、视图、触发器等)都包含在一个文件夹内,方便管理和维护。4.跨平台SQLite 目前支持大部分操作系统,不至电脑操作系统更在众多的手机系统也是能够运行,比如:Android。5.多语言接口SQLite 数据库支持多语言编程接口。6.安全性SQLite 数据库通过数据库级上的独占性和共享锁来实现独立事务处理。这意味着多个进程可以在同一时间从同一数据库读取数据,但只能有一个可以写入数据。Android中的SQLite使用首先创建数据库类public class DatabaseHelper extends SQLiteOpenHelper private static final String DB_NAME = mydata.db; /数据库名称private static final int version = 1; /数据库版本public DatabaseHelper(Context context) super(context, DB_NAME, null, version);/ TODO Auto-generated constructor stubOverridepublic void onCreate(SQLiteDatabase db) String sql = create table user(username varchar(20) not null , password varchar(60) not null ); db.execSQL(sql);Overridepublic void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) / TODO Auto-generated method stubSQLiteOpenHelper类介绍SQLiteOpenHelper是SQLiteDatabase的一个帮助类,用来管理数据库的创建和版本的更新。一般是建立一个类继承它,并实现它的onCreate和onUpgrade方法。方法名方法描述SQLiteOpenHelper(Context context,String name,SQLiteDatabase.CursorFactory factory,int version)构造方法,一般是传递一个要创建的数据库名称那么参数onCreate(SQLiteDatabase db)创建数据库时调用onUpgrade(SQLiteDatabase db,int oldVersion , int newVersion)版本更新时调用getReadableDatabase()创建或打开一个只读数据库getWritableDatabase()创建或打开一个读写数据库下面来介绍调用的方法创建数据库这里特别的地方是通过调用了SQLiteOpenHelper类的getReadableDatabase()方法来实现创建一个数据库的DatabaseHelper database = new DatabaseHelper(this);/这段代码放到Activity类中才用thisSQLiteDatabase db = null;db = database.getReadalbeDatabase();SQLiteDatabase类为我们提供了很多种方法,而较常用的方法如下(返回值)方法名方法描述(int) delete(String table,String whereClause,String whereArgs)删除数据行的便捷方法(long) insert(String table,String nullColumnHack,ContentValues values)添加数据行的便捷方法(int) update(String table, ContentValues values, String whereClause, String whereArgs)更新数据行的便捷方法(void) execSQL(String sql)执行一个SQL语句,可以是一个select或其他的sql语句(void) close()关闭数据库(Cursor) query(String table, String columns, String selection, String selectionArgs, String groupBy, String having, String orderBy, String limit)查询指定的数据表返回一个带游标的数据集(Cursor) rawQuery(String sql, String selectionArgs)运行一个预置的SQL语句,返回带游标的数据集(与上面的语句最大的区别就是防止SQL注入)数据的添删改查分别可以通过2种途径来实现数据的添加1.使用insert方法ContentValues cv = new ContentValues();/实例化一个ContentValues用来装载待插入的数据cv.put(username,Jack Johnson);/添加用户名cv.put(password,iLovePopMusic); /添加密码db.insert(user,null,cv);/执行插入操作2.使用execSQL方式来实现String sql = insert into user(username,password) values (Jack Johnson,iLovePopMuisc);/插入操作的SQL语句db.execSQL(sql);/执行SQL语句数据的删除同样有2种方式可以实现String whereClause = username=?;/删除的条件String whereArgs = Jack Johnson;/删除的条件参数db.delete(user,whereClause,whereArgs);/执行删除使用execSQL方式的实现String sql = delete from user where username=Jack Johnson;/删除操作的SQL语句db.execSQL(sql);/执行删除操作数据修改同上,仍是2种方式ContentValues cv = new ContentValues();/实例化ContentValuescv.put(password,iHatePopMusic);/添加要更改的字段及内容String whereClause = username=?;/修改条件String whereArgs = Jack Johnson;/修改条件的参数db.update(user,cv,whereClause,whereArgs);/执行修改使用execSQL方式的实现String sql = update user set password = iHatePopMusic where username=Jack Johnson;/修改的SQL语句db.execSQL(sql);/执行修改数据查询数据查询相对前面几种方法就复杂一些了,因为查询会带有很多条件通过query实现查询的public Cursor query(String table, String columns, String selection, String selectionArgs, String groupBy, String having, String orderBy, String limit)各参数说明: table:表名称 colums:列名称数组 selection:条件子句,相当于where selectionArgs:条件语句的参数数组 groupBy:分组 having:分组条件 orderBy:排序类 limit:分页查询的限制 Cursor:返回值,相当于结果集ResultSet针对游标(Cursor)也提供了不少方法方法名称方法描述getCount()总记录条数isFirst()判断是否第一条记录isLast()判断是否最后一条记录moveToFirst()移动到第一条记录moveToLast()移动到最后一条记录move(int offset)移动到指定的记录moveToNext()移动到吓一条记录moveToPrevious()移动到上一条记录getColumnIndex(String columnName)获得指定列索引的int类型值实现代码Cursor c = db.query(user,null,null,null,null,null,null);/查询并获得游标if(c.moveToFirst()/判断游标是否为空for(int i=0;ic.getCount();i+)c.move(i);/移动到指定记录String username = c.getString(c.getColumnIndex(username);String password = c.getString(

温馨提示

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

评论

0/150

提交评论