安卓数据库操作神器全面解析工具类 (android数据库操作工具类)

Android数据库操作神器全面解析工具类

随着移动互联网的发展,移动设备的普及,安卓操作系统作为其中一个更受欢迎的移动操作系统,越来越多的开发者开始研究安卓应用程序的开发。在众多应用的开发中,数据库操作是一个很重要的组成部分。为了方便开发人员的操作,减少代码量以及提高开发效率,开源社区推出了各种各样的数据库操作工具类。本文将会介绍几款优秀的安卓数据库操作工具类,并详细讲解它们的使用方法和优缺点。

一、GreenDao

GreenDao是一款专门针对android平台的ORM(对象关系映射)框架,它具有轻量级、高性能、易于使用等特点。GreenDao内部使用了代码生成技术,可以快速生成实体类和DAO类,减少了开发人员的工作量。同时,GreenDao通过根据实体类生成代码来保证访问数据库的高效性,可以在移动设备上快速读写数据。GreenDao支持SQLite和xDB数据库,是一款不错的ORM框架。

使用方法:

步骤1:在项目中添加GreenDao

在build.gradle(Project)文件中添加以下代码:

buildscript {

dependencies {

classpath ‘org.greenrobot:greendao-gradle-plugin:3.0.1’

}

}

在build.gradle(Module)文件中添加以下代码:

apply plugin: ‘org.greenrobot.greendao’

dependencies {

compile ‘org.greenrobot:greendao:3.2.2’

}

步骤2:添加GreenDao的实体类和DAO类

开发人员只需定义实体类和DAO类,GreenDao便能够根据这些类快速生成对应的代码。

步骤3:使用GreenDao进行数据操作

创建一个GreenDao示例,并使用它来获取DaoSession对象和各种实体类Dao对象。通过Dao对象进行数据库的操作即可。

优点:

1.快速生成实体类和DAO类,减少了开发人员的工作量;

2.根据实体类生成代码来保证访问数据库的高效性;

3.支持SQLite和xDB数据库,是一款不错的ORM框架。

缺点:

1.开发人员需要学习GreenDao的使用方法;

2.与其他ORM框架相比,GreenDao的项目配置相对较麻烦。

二、ActiveAndroid

ActiveAndroid是一款使用非常广泛的ORM框架,它是专为安卓开发的、基于SQLite的操作数据库的软件库。ActiveAndroid采用了少量、简单的语法和极简的API,使得程序员能够很方便地在安卓程序中进行数据持久化。ActiveAndroid的查询接口也极为灵活,程序员可以通过简单的语句轻松地查询数据库中的信息。ActiveAndroid框架也支持多线程并发处理,方便开发人员在程序中使用异步处理。

使用方法:

步骤1:在项目中添加ActiveAndroid

在build.gradle(Module)文件中添加以下代码:

dependencies {

compile ‘com.activeandroid:activeandroid:3.0-beta.2’

compile ‘com.activeandroid:activeandroid-query:3.0-beta.2’

}

步骤2:添加ActiveAndroid的实体类

开发人员只需定义实体类就可以使用ActiveAndroid进行数据库操作。

步骤3:使用ActiveAndroid进行数据操作

通过Model对象进行做相应的操作。比如,添加数据可以使用“model.save()”方法,删除数据可以使用“model.delete()”方法。

优点:

1.少量、简单的语法和极简的API,使开发人员能够很方便地在安卓程序中进行数据持久化;

2.查询接口极为灵活,程序员可以轻松地查询数据库中的信息;

3.支持多线程并发处理,方便开发人员在程序中使用异步处理。

缺点:

1.在多个线程中同时访问一个数据库时,可能会出现一些问题;

2.不支持多数据库访问。

三、LitePal

LitePal是一款基于SQLite的开源数据库框架,它采用了面向对象的编程方式,使开发人员能够更加方便地进行数据库操作。LitePal的优点是易于使用,只需要添加实体类并添加一些配置信息,即可轻松地进行数据的增删查改。

使用方法:

步骤1:在项目中添加LitePal

在build.gradle(Module)文件中添加以下代码:

dependencies {

compile ‘org.litepal.android:core:1.4.1’

}

步骤2:在assets目录下创建litepal.xml文件

在litepal.xml文件中配置数据库及其相关信息。例如:

步骤3:添加LitePal的实体类

开发人员只需定义实体类,即可使用LitePal进行数据库操作。

步骤4:使用LitePal进行数据操作

使用LitePal对象进行相应的操作。LitePal的API简单易用,例如:添加数据可以使用“LitePal.save()”方法,查询数据可以使用“LitePal.findAll()”方法等。

优点:

1.易于使用,只需要添加实体类并添加一些配置信息,即可轻松地进行数据的增删查改;

2.面向对象的编程方式,使开发人员更加方便地进行数据库操作。

缺点:

1.数据库文件在/data/data/包名/databases/目录下,读写权限需要申请;

2.不支持多数据库访问。

涉及到的工具类不胜枚举,本文只简单介绍了其中几款优秀的工具类。在项目开发中,选择适合自己的数据库操作工具类显得尤为重要。GreenDao是一款专门针对android平台的ORM框架,具有轻量级、高性能等特点;ActiveAndroid则是使用非常广泛的ORM框架,框架简单易用,支持多线程并发处理;LitePal是一款基于SQLite的开源数据库框架,易于使用,只需添加一些配置信息即可轻松进行数据库的增删查改。以上三款工具类,可以让安卓开发人员更加轻松地进行数据库操作,提高开发效率。

相关问题拓展阅读:

在android中对数据库做增删改查有两种方式分别是sqlitedatabase这个类中的哪几个

一、使用嵌入式关系型SQLite数据库存储数据

  在Android平台上,集成了一个嵌入式关系型数据库——SQLite,SQLite3支持NULL、INTEGER、REAL(浮点数字)、 TEXT(字符串文本)和BLOB(二进制对象)数据类型,虽然它支持的类型只有五种,但实际上sqlite3也接受varchar(n)、 char(n)、decimal(p,s) 等数据类型,只不过在运算或保存时会转成对应的五种数据类型。 SQLite更大的特点是你可以把各种类型的数据保存到任何字段中,而不用关心字段声明的数据类型是什么。例如:可以在Integer类型的字段中存放字符串,或者在布尔型字段中存放浮点数,或者在字符型字段中存放日期型值。 但有一种情况例外:定义为INTEGER PRIMARY KEY的字段只能存储64位整数, 当向这种字段保存除整数以外的数据时,将会产生错误。 另外配知,在编写CREATE TABLE 语句时,你可以省略跟在字段名称后面的数据类型信息,如下面语句你可以省略name字段的类型信息:

  CREATE TABLE person (personid integer primary key autoincrement, name varchar(20))

  SQLite可以解析大部分标准SQL语句,如:

  复制代码 代码如下:

  查询语句:select * from 表名 where 条件子句 group by 分组字句 having … order by 排序子句

  如: select * from person

  select * from person order by id desc

  select name from person group by name having count(*)>1

  分页SQL与mysql类似,下面SQL语句获取5条记录,跳过前面3条记录

  select * from Account limit 5 offset 3 或者 select * from Account limit 3,5

  插入语句:insert into 表名(字段列表) values(值列表)。如: insert into person(name, age) values(‘传智’,3)

  更新语句:update 表名 set 字段名=值 where 条件子句。如:update person set name=‘传智‘ where id=10

  删除语句:delete from 表名 where 条件子句。如:delete from person where id=10

  二、使用SQLiteOpenHelper对数据库进行版本管理

  我们在编写数据库应用软件时,需要考虑这样的问题:因为我们开发的软件可能会安装在很多用户的手机上,如果应用使用到了SQLite数据库,我们必须在用户初次使用软件时创建出应用使用到的数据库表结构及添加一些初始化记录,另外在软件升级的时候,也需要对数据表结构进行更新。那么,我仿卖高们如何才能实现在用户初次使用或升级软件时自动在用户的手机上创建出应用需要的数据库表呢?总不能让我们在每个需要安装此软件的手机上通过手工方式创建数据库表吧?因为这种需求是每个数据库应用都要面临的,所以在Android系统,为我们提供了一个名为SQLiteOpenHelper的抽象类,必须继承它才能使用,它是通过对数据库版本进行管理来实现前面提出的需求。

  为了实现对数据库版本进行管理,SQLiteOpenHelper类提供了两个重要的方法,分别是onCreate(SQLiteDatabase db)和onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion),前者用于初次备尺使用软件时生成数据库表,后者用于升级软件时更新数据库表结构。当调用SQLiteOpenHelper的getWritableDatabase()或者getReadableDatabase()方法获取用于操作数据库的SQLiteDatabase实例的时候,如果数据库不存在,Android系统会自动生成一个数据库,接着调用onCreate()方法,onCreate()方法在初次生成数据库时才会被调用,在onCreate()方法里可以生成数据库表结构及添加一些应用使用到的初始化数据。onUpgrade()方法在数据库的版本发生变化时会被调用,一般在软件升级时才需改变版本号,而数据库的版本是由程序员控制的,假设数据库现在的版本是1,由于业务的变更,修改了数据库表结构,这时候就需要升级软件,升级软件时希望更新用户手机里的数据库表结构,为了实现这一目的,可以把原来的数据库版本设置为2(有同学问设置为3行不行?当然可以,如果你愿意,设置为100也行),并且在 onUpgrade()方法里面实现表结构的更新。当软件的版本升级次数比较多,这时在onUpgrade()方法里面可以根据原版号和目标版本号进行判断,然后作出相应的表结构及数据更新。

  getWritableDatabase()和 getReadableDatabase()方法都可以获取一个用于操作数据库的SQLiteDatabase实例。但 getWritableDatabase() 方法以读写方式打开数据库,一旦数据库的磁盘空间满了,数据库就只能读而不能写,倘若使用getWritableDatabase()打开数据库就会出错。getReadableDatabase()方法先以读写方式打开数据库,如果数据库的磁盘空间满了,就会打开失败,当打开失败后会继续尝试以只读方式打开数据库。

  注意:getWritableDatabase(),getReadableDatabase的区别是当数据库写满时,调用前者会报错,调用后者不会,所以如果不是更新数据库的话,更好调用后者来获得数据库连接。

  代码:

  复制代码 代码如下:

  public class DatabaseHelper extends SQLiteOpenHelper {

  //类没有实例化,是不能用作父类构造器的参数,必须声明为静态

  private static final String name = “ljqdb”; //数据库名称

  private static final int version = 1; //数据库版本

  public DatabaseHelper(Context context) {

  //第三个参数CursorFactory指定在执行查询时获得一个游标实例的工厂类,设置为null,代表使用系统默认的工厂类

  super(context, name, null, version);

  }

  @Override

  public void onCreate(SQLiteDatabase db) {

  db.execSQL(“CREATE TABLE IF NOT EXISTS person (

  personid integer primary key autoincrement, name varchar(20), age INTEGER)”);

  }

  @Override

  public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {

  db.execSQL(” ALTER TABLE person ADD phone VARCHAR(12) NULL “); //往表中增加一列

  // DROP TABLE IF EXISTS person 删除表

  }

  }

  在实际项目开发中,当数据库表结构发生更新时,应该避免用户存放于数据库中的数据丢失。

  三、使用SQLiteDatabase操作SQLite数据库

  Android提供了一个名为SQLiteDatabase的类,该类封装了一些操作数据库的API,使用该类可以完成对数据进行添加(Create)、查询(Retrieve)、更新(Update)和删除(Delete)操作(这些操作简称为CRUD)。对SQLiteDatabase的学习,我们应该重点掌握execSQL()和rawQuery()方法。execSQL()方法可以执行insert、delete、update和CREATE TABLE之类有更改行为的SQL语句; rawQuery()方法用于执行select语句。

  execSQL()方法的使用例子:

  复制代码 代码如下:

  SQLiteDatabase db = ….;

  db.execSQL(“insert into person(name, age) values(‘林计钦’, 24)”);

  db.close();

  执行上面SQL语句会往person表中添加进一条记录,在实际应用中, 语句中的“林计钦”这些参数值会由用户输入界面提供,如果把用户输入的内容原样组拼到上面的insert语句, 当用户输入的内容含有单引号时,组拼出来的SQL语句就会存在语法错误。要解决这个问题需要对单引号进行转义,也就是把单引号转换成两个单引号。有些时候用户往往还会输入像“ & ”这些特殊SQL符号,为保证组拼好的SQL语句语法正确,必须对SQL语句中的这些特殊SQL符号都进行转义,显然,对每条SQL语句都做这样的处理工作是比较烦琐的。 SQLiteDatabase类提供了一个重载后的execSQL(String sql, Object bindArgs)方法,使用这个方法可以解决前面提到的问题,因为这个方法支持使用占位符参数(?)。使用例子如下:

  复制代码 代码如下:

  SQLiteDatabase db = ….;

  db.execSQL(“insert into person(name, age) values(?,?)”, new Object{“传智播客”, 4});

  db.close();

  execSQL(String sql, Object bindArgs)方法的之一个参数为SQL语句,第二个参数为SQL语句中占位符参数的值,参数值在数组中的顺序要和占位符的位置对应。

  SQLiteDatabase的rawQuery()用于执行select语句,使用例子如下:

  复制代码 代码如下:

  SQLiteDatabase db = ….;

  Cursor cursor = db.rawQuery(“select * from person”, null);

  while (cursor.moveToNext()) {

  int personid = cursor.getInt(0); //获取之一列的值,之一列的索引从0开始

  String name = cursor.getString(1);//获取第二列的值

  int age = cursor.getInt(2);//获取第三列的值

  }

  cursor.close();

  db.close();

  rawQuery()方法的之一个参数为select语句;第二个参数为select语句中占位符参数的值,如果select语句没有使用占位符,该参数可以设置为null。带占位符参数的select语句使用例子如下:

  复制代码 代码如下:

  Cursor cursor = db.rawQuery(“select * from person where name like ? and age=?”, new String{“%林计钦%”, “4”});

  Cursor是结果集游标,用于对结果集进行随机访问,如果大家熟悉jdbc, 其实Cursor与JDBC中的ResultSet作用很相似。使用moveToNext()方法可以将游标从当前行移动到下一行,如果已经移过了结果集的最后一行,返回结果为false,否则为true。另外Cursor 还有常用的moveToPrevious()方法(用于将游标从当前行移动到上一行,如果已经移过了结果集的之一行,返回值为false,否则为true )、moveToFirst()方法(用于将游标移动到结果集的之一行,如果结果集为空,返回值为false,否则为true )和moveToLast()方法(用于将游标移动到结果集的最后一行,如果结果集为空,返回值为false,否则为true ) 。

  除了前面给大家介绍的execSQL()和rawQuery()方法, SQLiteDatabase还专门提供了对应于添加、删除、更新、查询的操作方法: insert()、delete()、update()和query() 。这些方法实际上是给那些不太了解SQL语法的菜鸟使用的,对于熟悉SQL语法的程序员而言,直接使用execSQL()和rawQuery()方法执行SQL语句就能完成数据的添加、删除、更新、查询操作。

Android开发中使用SQLite 数据库

SQPte 一个非常流行的嵌入式数据库,它支持 SQL 语言,并且只利用很少的内存就有很好的性能。此外它还是开源的,任何人都可以使用它。许多开源项目((Mozilla, PHP, Python)都使用了 SQPte.

SQPte 由以下几个组件组成:SQL 编译器、内核、后端以及附件。SQPte 通过利用虚拟机和虚拟数据库引擎团搭(VDBE),使调试、修改和扩展 SQPte 的内核变得更加方便。

SQPte 基本上符合 SQL-92 标准,和其他的主要 SQL 数据库没什么区别。它的优点就是高效,Android 运行时环境包含了完整的 SQPte。

SQPte 和其他数据库更大的不同就是对数据类型的支持,创建一个表时,可以在 CREATE TABLE 语句中指定某列的数据类型,但是你可以把任何数据类型放入任何列中。当某个值插入数据库时,SQPte 将检查它的类型。如果该类型与关联的列不匹配,则 SQPte 会尝试将该值转换成该列的类型。如果不能转换,则该值将作为其本身具有的类型存储。比如可以把一个字符串(String)放入 INTEGER 列。SQPte 称这为“弱类型”(manifest typing.)。

此外,SQPte 不支持一些标准的 SQL 功能,特别是外键约束(FOREIGN KEY constrains),嵌套 transcaction 和 RIGHT OUTER JOIN 和 FPL OUTER JOIN, 还有一些 ALTER TABLE 功能。

除了上述功能外戚孝,SQPte 是一个完整的 SQL 系统,拥有完整的触发器,交易等等。

Android 集成了 SQPte 数据库

Android 在运行时(run-time)集成了 SQPte,所以每个 Android 应用程序都可以使用 SQPte 数据库。对于熟悉 SQL 的开发人员来时,在 Android 开发中使用 SQPte 相当简单。但是,由于 JDBC 会消耗太多的系统资源,所以 JDBC 对于手机这种内存受限设备来说并不合适。因塌仔拿此,Android 提供了一些新的 API 来使用 SQPte 数据库,Android 开发中,程序员需要学使用这些 API。

数据库存储在 data/ 项目文件夹 /databases/ 下。

Android 开发中使用 SQPte 数据库

Activites 可以通过 Content Provider 或者 Service 访问一个数据库。下面会详细讲解如果创建数据库,添加数据和查询数据库。

创建数据库

Android 不自动提供数据库。在 Android 应用程序中使用 SQPte,必须自己创建数据库,然后创建表、索引,填充数据。Android 提供了 SQPteOpenHelper 帮助你创建一个数据库,你只要继承 SQPteOpenHelper 类,就可以轻松的创建数据库。SQPteOpenHelper 类根据开发应用程序的需要,封装了创建和更新数据库使用的逻辑。SQPteOpenHelper 的子类,至少需要实现三个方法:

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

onCreate()方法,它需要一个 SQPteDatabase 对象作为参数,根据需要对这个对象填充表和初始化数据。

onUpgrage() 方法,它需要三个参数,一个 SQPteDatabase 对象,一个旧的版本号和一个新的版本号,这样你就可以清楚如何把一个数据库从旧的模型转变到新的模型。

下面示例代码展示了如何继承 SQPteOpenHelper 创建数据库:

pubPc class DatabaseHelper extends SQPteOpenHelper {

DatabaseHelper(Context context, String name, CursorFactory cursorFactory, int version)

{

super(context, name, cursorFactory, version);

}

@Override

pubPc void onCreate(SQPteDatabase db) {

// TODO 创建数据库后,对数据库的操作

}

@Override

pubPc void onUpgrade(SQPteDatabase db, int PdVersion, int newVersion) {

// TODO 更改数据库版本的操作

}

@Override

pubPc void onOpen(SQPteDatabase db) {

super.onOpen(db);

// TODO 每次成功打开数据库后首先被执行

}

}

接下来讨论具体如何创建表、插入数据、删除表等等。调用 getReadableDatabase() 或 getWriteableDatabase() 方法,你可以得到 SQPteDatabase 实例,具体调用那个方法,取决于你是否需要改变数据库的内容:

db=(new DatabaseHelper(getContext())).getWritableDatabase();

return (db == nPl) ? false : true;

上面这段代码会返回一个 SQPteDatabase 类的实例,使用这个对象,你就可以查询或者修改数据库。

当你完成了对数据库的操作(例如你的 Activity 已经关闭),需要调用 SQPteDatabase 的 Close() 方法来释放掉数据库连接。

创建表和索引

为了创建表和索引,需要调用 SQPteDatabase 的 execSQL() 方法来执行 DDL 语句。如果没有异常,这个方法没有返回值。

例如,你可以执行如下代码:

db.execSQL(“CREATE TABLE mytable (_id INTEGER PRIMARY KEY

AUTOINCREMENT, title TEXT, value REAL);”);

这条语句会创建一个名为 mytable 的表,表有一个列名为 _id,并且是主键,这列的值是会自动增长的整数(例如,当你插入一行时,SQPte 会给这列自动赋值),另外还有两列:title( 字符 ) 和 value( 浮点数 )。 SQPte 会自动为主键列创建索引。

通常情况下,之一次创建数据库时创建了表和索引。如果你不需要改变表的 schema,不需要删除表和索引 . 删除表和索引,需要使用 execSQL() 方法调用 DROP INDEX 和 DROP TABLE 语句。

给表添加数据

上面的代码,已经创建了数据库和表,现在需要给表添加数据。有两种方法可以给表添加数据。

像上面创建表一样,你可以使用 execSQL() 方法执行 INSERT, UPDATE, DELETE 等语句来更新表的数据。execSQL() 方法适用于所有不返回结果的 SQL 语句。例如:

db.execSQL(“INSERT INTO widgets (name, inventory)”+

“VALUES (‘Sprocket’, 5)”);

另一种方法是使用 SQPteDatabase 对象的 insert(), update(), delete() 方法。这些方法把 SQL 语句的一部分作为参数。示例如下:

ContentValues cv=new ContentValues();

cv.put(Constants.TITLE, “example title”);

cv.put(Constants.VALUE, SensorManager.GRAVITY_DEATH_STAR_I);

db.insert(“mytable”, getNPlCPumnHack(), cv);

update()方法有四个参数,分别是表名,表示列名和值的 ContentValues 对象,可选的 WHERE 条件和可选的填充 WHERE 语句的字符串,这些字符串会替换 WHERE 条件中的“?”标记。update() 根据条件,更新指定列的值,所以用 execSQL() 方法可以达到同样的目的。

WHERE 条件和其参数和用过的其他 SQL APIs 类似。例如:

String parms=new String {“this is a string”};

db.update(“widgets”, replacements, “name=?”, parms);

delete() 方法的使用和 update() 类似,使用表名,可选的 WHERE 条件和相应的填充 WHERE 条件的字符串。

#p#副标题#e#

查询数据库

类似 INSERT, UPDATE, DELETE,有两种方法使用 SELECT 从 SQPte 数据库检索数据。

1 .使用 rawQuery() 直接调用 SELECT 语句;

使用 query() 方法构建一个查询。

Raw Queries正如 API 名字,rawQuery() 是最简单的解决方法。通过这个方法你就可以调用 SQL SELECT 语句。例如:

Cursor c=db.rawQuery(“SELECT name FROM sqPte_master WHERE type=’table’ AND name=’mytable'”, nPl);

在上面例子中,我们查询 SQPte 系统表(sqPte_master)检查 table 表是否存在。返回值是一个 cursor 对象,这个对象的方法可以迭代查询结果。如果查询是动态的,使用这个方法就会非常复杂。例如,当你需要查询的列在程序编译的时候不能确定,这时候使用 query() 方法会方便很多。

RegPar Queriesquery() 方法用 SELECT 语句段构建查询。SELECT 语句内容作为 query() 方法的参数,比如:要查询的表名,要获取的字段名,WHERE 条件,包含可选的位置参数,去替代 WHERE 条件中位置参数的值,GROUP BY 条件,HAVING 条件。除了表名,其他参数可以是 nPl。所以,以前的代码段可以可写成:

String cPumns={“ID”, “inventory”};

String parms={“snicklefritz”};

Cursor resPt=db.query(“widgets”, cPumns, “name=?”,parms, nPl, nPl, nPl);

使用游标不管你如何执行查询,都会返回一个 Cursor,这是 Android 的 SQPte 数据库游标,使用游标,你可以:通过使用 getCount() 方法得到结果集中有多少记录;通过 moveToFirst(), moveToNext(), 和 isAfterLast() 方法遍历所有记录;通过 getCPumnNames() 得到字段名;通过 getCPumnIndex() 转换成字段号;通过 getString(),getInt() 等方法得到给定字段当前记录的值;通过 requery() 方法重新执行查询得到游标;通过 close() 方法释放游标资源;例如,下面代码遍历 mytable 表

Cursor resPt=db.rawQuery(“SELECT ID, name, inventory FROM mytable”);

resPt.moveToFirst();

while (!resPt.isAfterLast()) {

int id=resPt.getInt(0);

String name=resPt.getString(1);

int inventory=resPt.getInt(2);

// do something usefP with these

resPt.moveToNext();

}

resPt.close();

在 Android 中使用 SQPte 数据库管理工具

在其他数据库上作开发,一般都使用工具来检查和处理数据库的内容,而不是仅仅使用数据库的 API。使用 Android 模拟器,有两种可供选择的方法来管理数据库。首先,模拟器绑定了 sqPte3 控制台程序,可以使用 adb shell 命令来调用他。只要你进入了模拟器的 shell,在数据库的路径执行 sqPte3 命令就可以了。数据库文件一般存放

在:/data/data/your.app.package/databases/your-db-name如果你喜欢使用更友好的工具,你可以把数据库拷贝到你的开发机上,使用 SQPte-aware 客户端来操作它。这样的话,你在一个数据库的拷贝上操作,如果你想要你的修改能反映到设备上,你需要把数据库备份回去。把数据库从设备上考出来,你可以使用 adb pPl 命令(或者在 IDE 上做相应操作)。存储一个修改过的数据库到设备上,使用 adb push 命令。一个最方便的 SQPte 客户端是 FireFox SQPte Manager 扩展,它可以跨所有平台使用。

结束语

如果你想要开发 Android 应用程序,一定需要在 Android 上存储数据,使用 SQPte 数据库是一种非常好的选择。本文介绍了如何在 Android 应用程序中使用 SQPte 数据库 ,主要介绍了在 Android 应用程序中使用 SQPte 创建数据库和表、添加数据、更新和检索数据,还介绍了比较常用的 SQPte 管理工具,通过阅读本文,你可以在 Android 中轻松操作 SQPte 数据库。

#p#副标题#e#

关于android数据库操作工具类的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。


数据运维技术 » 安卓数据库操作神器全面解析工具类 (android数据库操作工具类)