Android开发怎么查看和管理sqlite数据库

Android开发怎么查看和管理sqlite数据库,第1张

在Android中可以使用Eclipse插件DDMS来查看,也可以使用Android工具包中的adb工具来查看。android项目中的sqlite数据位于/data/data/项目包/databases中。

使用DDMS导出sqlite数据库。

1、首先打开android项目的调试模式,然后找到显示DDMS:

选择DDMS

2、切换到DDMS,显示FileExplorer窗口,找到/data/data/

然后找到程序包的文件夹,打开databases,就能看到sqlite数据库文件了。选择将其导出。

这样就把sqlite数据库文件以文件的方式导出来了,然后使用sqlite界面管理工具如sqliteadministrator、sqliteman或者firefox插件sqlitemanager等打开就可以了。

使用adb工具访问sqlite数据库

AndroidDebugBridge(ADB)是Android的一个通用调试工具,它可以更新设备或模拟器中的代码,可以管理预定端口,可以在设备上运行shell命令,我们知道android是基于Linux内核,它的内部文件结构也是采用linux文件组织方式,因此访问它的文件结构需要使用shell。这次我们就会用shell来访问android应用中的sqlite数据库文件。

1、运行cmd,切换到android-sdk目录,运行adbexe,加上参数shell,出现#号就代表进入了shell命令模式,注意adb要在Android模拟器运行时才能进入shell:

2、shell命令记住两个基本命令ls和cd,类似windows命令提示行中的dir和cd,代表列出当前目录下文件列表和进入到指定目录。了解这两个命令之后,就可以找到data/data/项目包名/databases:

找到数据库文件:

接下来就是使用sqlite管理工具来进行 *** 作了。键入sqlite3数据库名就进入了sqlite管理模式了。

在android的sdk中自带了sqlite3exe,这是sqlite的官方管理工具,它是一个命令行工具。为了使用方便,将其路径注册到系统环境变量path中,即将;%Android_Home%加在Path中,这样只样运行sqlite3,就能直接打开sqlite管理工具了。

sqlite管理数据库篇

sqlite命令行工具默认是以;结束语句的。所以如果只是一行语句,要在末尾加;,或者在下一行中键入;,这样sqlite命令才会被执行。

sqlite常用命令:

tables--查看数据库的表列表

exit--退出sqlite命令行

SQLite Helper类,基于net c#的SQLite数据库 *** 作类SQLite这个精巧的小数据库,无需安装软件,只需要一个SystemDataSQLiteDLL文件即可 *** 作SQLite数据库。但是据说功能却非常强大。简介:SQLite是一个开源数据库,现在已变得越来越流行,它的体积很小,被广泛应用于各种不同类型的应用中。SQLite已经是世界上布署得最广泛的SQL数据库引擎,被用在无以计数的桌面电脑应用中,还有消费电子设备中,如移动电话、掌上电脑和MP3播放器等。SQLite的源码就放在公有领域(即WikiPedia的public domain)中。开始使用:Sqliteman,windows下最好的sqlite gui客户端 sqlite,sqliteman 772M

SQLite Administrator 0832┊是基于数据库引擎的管理工具┊汉化绿色特别版 sqlite 168M

SQLite,除了access,mysql以外的另外一个轻量级数据库

using System;

using SystemCollectionsGeneric;

using SystemText;

using SystemWeb;

using SystemConfiguration;

using SystemData;

using SystemDataSQLite;namespace DAL

{

public class Sqlite

{

/// <summary>

/// 获得连接对象

/// </summary>

/// <returns></returns>

public static SQLiteConnection GetSQLiteConnection()

{

return new SQLiteConnection("Data Source=" + SystemWeb>

1、在IOS中要使用SQLite3,需要添加库文件:libsqlite3bylib并导入主头文件,这是一个C语言的库。

2、创建数据库(sqlite3_opendb)。

3、单步执行 *** 作 (sqlite3_exec):

创建数据库表;数据 *** 作;插入数据;更新数据;删除数据。

4、查询 *** 作:

sqlite3_prepare_v2 检查sql合法性;sqlite3_step 逐行获取查询结果;sqlite3_coloum_xxx 获取对应类型的内容;sqlite3_finalize 释放stmt。

1 SQLite数据库特点

(1)SQLite数据库是开源的嵌入式数据库,无需独立的数据库引擎,直接嵌入到应用程序进程中,因此,通过API,应用程序可以直接 *** 作它。

(2)事务的处理是原子的,一致的,独立的,可持久化的(ACID),即使在系统崩溃和掉电后。

(3)SQLite数据库通过独占性与共享锁来实现事务的独立处理。

(4)一个单独的跨平台的磁盘文件就能够存储一个数据库。

(5)能支持2TB级的数据。

(6)自包含,无外部依赖性。

(7)支持NULL,INTEGER,NUMERIC,REAL,TEXT和BLOG等数据类型。

(8)SQLite数据库没有用户帐户的概念。数据库的权限仅依赖于文件系统。

2 SQLite数据库的基本 *** 作

(1)建立数据库

sqlite3 datasqlite3

在当前目录下建立了名为datasqlite3的数据库。

(2)建立数据表

create table call_list (id INTEGER PRIMARY KEY, type NUMERIC,telnum NUMERIC,bttime TEXT,tcount NUMERIC,charge_rate NUMERIC,charge_sum NUMERIC);

建立了名为 call_list的数据表,有7个字段,分别为id,type,telnum,bttime,tcount,charge_sumcharge_rate

(3)向数据表中插入数据

insert into call_list values ($num,1,2,'new',4,5,6);

(4)查询数据表中的数据

select from call_list;

(5)修改call_list表中的数据

update call_list set id=00001000 where id=10001;

(6)删除表中的数据记录

delete from call_list where id=1000;

(7)SQlite中的其它常用命令

tables -列出所有的数据库中的数据表

schema tablename -列出指定数据表的结构

quit -离开数据库

(8)SQLite数据库的导入与导出

a将datasqlite数据库的数据全部导出:

sqlite3 datasqlite

>output ddsql

>dump

这样,数据就保存在ddsql的文件中,注意这个文件不是数据库,而是SQL语句。

然后再把这些数据导入到另外一个数据库data1sqlite数据库中。

sqlite3 data1sqlite

>read ddsql

这样,数据就从datasqlite数据库复制到data1sqlite数据库中去了。

b将数据表中的数据导出到atxt中去

output atxt //输出重定向到atxt

select from call_list;

c将导出的表中的数据导入到另一个数据库的新建的表中去

如:当从datasqlite中的call_list表中导出了数据,再导入到另外一个数据库表call中去。

首先建立表call

然后import atxt call 即可。

3 C语言 *** 作Sqlite数据库

API:

int sqlite3_open(const char filename,sqlite3ppdb);

第一个参数用来指定数据库文件名。

第二个参数是一个数据库标识符指针。

如果打开数据库成功,则返回0,否则返回一个错误代码。

int sqlite3_close(sqlite3);

传递的参数是数据库标识符指针用来关闭数据库, *** 作成功是返回0,否则返回一个错误代码。

int sqlite3_errcode(sqlite3db);

const char sqlite3_errmsg(sqlite3 db);

const char sqlite3_errmsg16(sqlite3 db);

这三个函数都是返回错误信息,第一个函数返回的是最近调用数据库接口的错误代码,第二,第三个函数是返回最近调用数据库接口的错误信息。第二个函数返回的错误信息是用UTF-8编码的,第三个函数返回的错误信息是用UTF-16编码的。

int sqlite3_exec(sqlite3,const charsql,int(callback)(void,int,char,char),void,errmsg);

这个函数非常重用,是用来执行SQLite数据库的SQL语句的。

第一个参数是sqlite数据库标识符指针。

第二个参数是要执行的SQL语句。

第三个参数是一个回调函数,在执行查询 *** 作时用到,其它的 *** 作可以传空值即NULL。

第四个参数是传递给回调函数第一个参数的实参。

第五个参数是一个错误信息。

SQLite是一种轻型数据库,常用于移动设备和嵌入式系统中。在手机存储中,SQLite被用作一个本地的嵌入式数据库,用于存储和管理应用程序的数据。SQLite提供了一个简单的、易于集成的方式,使开发者可以将数据存储在手机本地,而不需要连接到远程服务器。

SQLite的主要优点是其轻量级、高效和易用性。它占用的空间非常小,可以在手机存储中轻松地安装和管理,而且它不需要独立的服务器或其他软件来运行。开发者可以使用SQLite来存储应用程序的各种数据,如用户配置、本地缓存、日志信息等。

此外,SQLite还提供了多种编程语言的API,如C、Java、Python等,使得开发者可以使用自己熟悉的编程语言来 *** 作SQLite数据库。这些API非常易于使用,能够让开发者快速地进行数据库 *** 作,如查询、插入、更新和删除数据等。

总之,SQLite是一种简单、高效、易于集成的本地数据库,适用于在手机等移动设备上存储和管理数据。

SQLite添加、更新和删除数据是常见的数据库 *** 作。然而,数据越高并不一定好,这取决于具体的需求和情况。以下是关于这些 *** 作的更详细的解释:

添加数据:使用SQLite添加数据非常简单,只需向表中插入新的行即可。添加数据的目的是为了将新的数据存储到数据库中,以便后续查询和 *** 作。然而,添加过多的数据可能会导致数据库变得庞大和不易维护,因此需要根据实际需求来控制添加的数据量。

更新数据:在SQLite中更新数据需要使用UPDATE语句,可以更新表中现有行的数据。更新数据的目的是为了使数据库中的数据与实际情况保持同步。然而,更新数据的频率过高也可能会导致数据库变得混乱和难以维护,因此需要根据实际需求来控制更新的数据量和频率。

删除数据:在SQLite中删除数据需要使用DELETE语句,可以删除表中的指定行。删除数据的目的是为了清理不需要的数据,以便数据库可以更好地管理和维护。然而,删除过多的数据可能会导致数据丢失和无法恢复,因此需要在删除数据时谨慎处理。

综上所述,添加、更新和删除数据的 *** 作需要根据实际需求来控制数据量和频率。数据越高并不一定好,而是应该根据实际需求来合理管理和维护数据库。

procedure TForm1btnTestClick(Sender: TObject);

var

  slDBpath: string;

  sldb: TSQLiteDatabase;

  sltb: TSQLIteTable;

  sSQL: string;

  Notes: string;

  i, ts: integer;

begin

  slDBPath := ExtractFilepath(applicationexename) + 'testdb';

  //slDBPath := 'r:\testdb';

  sldb := TSQLiteDatabaseCreate(slDBPath);

  try

    slDbSynchronised :=  false;

    if sldbTableExists('testTable') then

    begin

      sSQL := 'DROP TABLE testtable';

      sldbexecsql(sSQL);

    end;

    //sSQL := 'CREATE TABLE testtable ([ID] INTEGER PRIMARY KEY,[OtherID] INTEGER NULL,';

    //sSQL := sSQL + '[Name] VARCHAR (255),[Number] FLOAT, [notes] BLOB, [picture] BLOB COLLATE NOCASE);';

    sSQL := 'CREATE TABLE testtable ([ID] INTEGER PRIMARY KEY ,[OtherID] INTEGER NULL,';

    sSQL := sSQL + '[Name] VARCHAR (255),[Notes] VARCHAR (255),[Number] FLOAT COLLATE NOCASE);';

    sldbexecsql(sSQL);

    //sldbexecsql('CREATE INDEX TestTableName ON [testtable]([Name]);');

    ts := GetTickCount();

    //begin a transaction

    sldbBeginTransaction;

    for i := 0 to 10000 do

    begin

      sSQL := 'INSERT INTO testtable(Name,OtherID,Number,Notes) VALUES ("Some Name",4,5876594,"Here are some notes");';

      //do the insert

      sldbExecSQL(sSQL);

      sSQL := 'INSERT INTO testtable(Name,OtherID,Number,Notes) VALUES ("Another Name",12,47583265,"More notes");';

      //do the insert

      sldbExecSQL(sSQL);

    end;

    //end the transaction

    sldbCommit;

    ts := GetTickCount() - ts;

    showmessage(format('insert 10000 : %d ms', [ts])); //'Sqlite dll version:'+SlDbversion);

//

//    sSQL := 'INSERT INTO testtable(Name,OtherID,Number,Notes) VALUES ("Another Name",12,47583265,"More notes");';

//    sldbPrepareSQL(sSQL);

//    sldbbind

    //query the data

    sltb := slDbGetTable('SELECT  FROM testtable');

    try

      if sltbCount > 0 then

      begin

        //display first row

        ebNameText := sltbFieldAsString(sltbFieldIndex['Name']);

        ebIDText := inttostr(sltbFieldAsInteger(sltbFieldIndex['ID']));

        ebNumberText := floattostr(sltbFieldAsDouble(sltbFieldIndex['Number']));

        //Notes := sltbFieldAsBlobText(sltbFieldIndex['Notes']);

        memNotesText := notes;

      end;

    finally

      sltbFree;

    end;

    

  finally

    sldbFree;

  end;

end;

下载 Delphi SQLite3的开源插件 >

 这个demo中包含了sqlite3pas,sqlite3tablepas,sqlitedll三个文件,里面包含了 *** 作sqlite3的源代码,利用这三个文件,就不需要第三方组件了

添加步骤:

将simple sqlite 30 for delphi 中的 sqlite3pas,sqlite3tablepas拷贝至工程所在的文件夹。并在工程中添加这两个个文件。

拷贝 sqlitedll到编译生成exe文件的文件夹。这个根据个人的设定。

更新到SQLite3 dll文件   >

以上就是关于Android开发怎么查看和管理sqlite数据库全部的内容,包括:Android开发怎么查看和管理sqlite数据库、SQLite数据库 *** 作类、sqlite3使用方法等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/9802334.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-02
下一篇 2023-05-02

发表评论

登录后才能评论

评论列表(0条)

保存