千家信息网

Android开发中的SQLite技术是怎样的

发表于:2026-11-01 作者:千家信息网编辑
千家信息网最后更新 2026年11月01日,Android开发中的SQLite技术是怎样的,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。Google为Andriod的较大的数据
千家信息网最后更新 2026年11月01日Android开发中的SQLite技术是怎样的

Android开发中的SQLite技术是怎样的,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。

Google为Andriod的较大的数据处理提供了SQLite,他在数据存储、管理、维护等各方面都相当出色,功能也非常的强大。SQLite具备下列特点:

1.轻量级。使用 SQLite 只需要带一个动态库,就可以享受它的全部功能,而且那个动态库的尺寸想当小。

2.独立性。SQLite 数据库的核心引擎不需要依赖第三方软件,也不需要所谓的"安装"。

3.隔离性。SQLite 数据库中所有的信息(比如表、视图、触发器等)都包含在一个文件夹内,方便管理和维护。

4.跨平台。SQLite 目前支持大部分操作系统,不至电脑操作系统更在众多的手机系统也是能够运行,比如:Android。

5.多语言接口。SQLite 数据库支持多语言编程接口。

6.安全性。SQLite 数据库通过数据库级上的独占性和共享锁来实现独立事务处理。这意味着多个进程可以在同一时间从同一数据库读取数据,但只能有一个可以写入数据。

Android中的SQLite使用

首先创建数据库类:

view sourceprint?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 stub  }  @Override  public void onCreate(SQLiteDatabase db) {  String sql = "create table user(username varchar(20) not null , password varchar(60) not null );";  db.execSQL(sql);  }  @Override  public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {  // TODO Auto-generated method stub  }  }

SQLiteOpenHelper类介绍

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()方法来实现创建一个数据库。

view sourceprint?1DatabaseHelper database = new DatabaseHelper(this);//这段代码放到Activity类中才用this  2SQLiteDatabase db = null;  3db = 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注入)

数据的添删改查分别可以通过两种途径来实现。

数据的添加

1.使用insert方法

view sourceprint?1ContentValues cv = new ContentValues();//实例化一个ContentValues用来装载待插入的数据cv.put("username","Jack Johnson");//添加用户名  2cv.put("password","iLovePopMusic"); //添加密码  3db.insert("user",null,cv);//执行插入操作

2.使用execSQL方式来实现

view sourceprint?1String sql = "insert into user(username,password) values ('Jack Johnson','iLovePopMuisc');//插入操作的SQL语句  2db.execSQL(sql);//执行SQL语句

数据的删除同样有2种方式可以实现

view sourceprint?1String whereClause = "username=?";//删除的条件    2String[] whereArgs = {"Jack Johnson"};//删除的条件参数    3db.delete("user",whereClause,whereArgs);//执行删除    //使用execSQL方式的实现    view sourceprint?1String sql = "delete from user where username='Jack Johnson'";//删除操作的SQL语句    2db.execSQL(sql);//执行删除操作

数据修改同上,仍是2种方式

view sourceprint?1ContentValues cv = new ContentValues();//实例化ContentValues  2cv.put("password","iHatePopMusic");//添加要更改的字段及内容  3String whereClause = "username=?";//修改条件  4String[] whereArgs = {"Jack Johnson"};//修改条件的参数  5db.update("user",cv,whereClause,whereArgs);//执行修改  //使用execSQL方式的实现  view sourceprint?1String sql = "update [user] set password = 'iHatePopMusic' where username='Jack Johnson'";//修改的SQL语句  2db.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;i

关于Android开发中的SQLite技术是怎样的问题的解答就分享到这里了,希望以上内容可以对大家有一定的帮助,如果你还有很多疑惑没有解开,可以关注行业资讯频道了解更多相关知识。

数据 方法 数据库 语句 条件 查询 参数 移动 名称 方式 游标 便捷 版本 系统 问题 帮助 更新 管理 技术 开发 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 哈尔滨大商圈互联网科技有限公司 深圳九邦互联网科技有限公司 互联网科技工作委员会主任 互联网科技ppt模板 北京禾田雨橡互联网科技 互联网 科技服务平台 中国最先进互联网科技公司 互联网 科技馆 西藏七维空间互联网科技有限公司 宁波青枫互联网科技有限公司 互联网系的金融科技公司 互联网软件和科技 哈尔滨屹滨互联网科技有限公司 畅思互联网科技 深圳艾果互联网通讯科技 互联网时代的科技公司 21世纪互联网科技成就 半导体是互联网高科技吗 银川新华互联网科技学校是国营吗 中国科技和美国互联网 科技创新与互联网经济 互联网科技会 平安科技 互联网 礼当家互联网科技 善班互联网科技有限公司 佰商互联网科技有限公司 互联网巨头投资的硬核科技 华脉科技工业互联网产品 哈尔滨秒房互联网科技有限公司 山东有哪些互联网科技公司
0