- 浏览: 44436 次
- 性别:
- 来自: 成都
文章分类
最新评论
Find and connect to a database
You can find busybox on Benno’s site . If you can find the location of the .db file, you don’t really need busybox. Though i highly recommend it since it has many useful utilities.
C:\android>adb shell # export PATH=/data/busybox:$PATH export PATH=/data/busybox:$PATH # find data -name "*.db" -print find data -name "*.db" -print data/data/com.google.android.providers.contacts/databases/contacts.db data/data/com.google.android.providers.googleapps/databases/accounts.db data/data/com.google.android.providers.im/databases/im.db data/data/com.google.android.providers.media/databases/media.db data/data/com.google.android.providers.telephony/databases/mms.db data/data/com.google.android.providers.telephony/databases/sms.db data/data/com.google.android.providers.telephony/databases/telephony.db data/data/com.google.android.providers.settings/databases/settings.db data/data/com.google.android.maps/databases/maps.db # sqlite3 data/data/com.google.android.providers.contacts/databases/contacts.db sqlite3 data/data/com.google.android.providers.contacts/databases/contacts.db SQLite version 3.5.0 Enter ".help" for instructions sqlite>
Find the list of tables and their structure
sqlite> .tables .tables _deleted_people contact_methods peopleLookup calls people phones sqlite> .schema people .schema people CREATE TABLE people (_id INTEGER PRIMARY KEY,_sync_account TEXT,_sync_id TEXT,_sync_time TEXT,_sync_version TEXT,_sync_local_id INTEGER,_sync_dirty INTEGER,_sync_mark INTEGER,name TEXT NOT NULL,notes TEXT,photo TEXT,company TEXT,title TEXT,preferred_phone INTEGER,preferred_email INTEGER); CREATE INDEX peopleSyncIdIndex ON people (_sync_id); CREATE TRIGGER contact_cleanup DELETE ON people BEGIN DELETE FROM peopleLookup WHERE source = old._id;DELETE FROM phones WHERE person = old._id;DELETE FROM contact_methods WHERE person = old._id;UPDATE calls SET person = NULL WHERE person = old._id;END; CREATE TRIGGER contact_to_deleted DELETE ON people WHEN old._sync_id is not null BEGIN INSERT INTO _deleted_people (_sync_id, _sync_account, _sync_version) VALUES (old._sync_id, old._sync_account, old._sync_version);END; CREATE TRIGGER peopleLookup_insert AFTER INSERT ON people BEGIN SELECT _TOKENIZE('peopleLookup', new._id, new.name, ' ');END; CREATE TRIGGER peopleLookup_update UPDATE OF name ON people BEGIN DELETE FROM peopleLookup WHERE source = new._id;SELECT _TOKENIZE('peopleLookup', new._id, new.name, ' ');END; sqlite> .schema phones .schema phones CREATE TABLE phones (_id INTEGER PRIMARY KEY,person INTEGER,type INTEGER,number TEXT,number_key TEXT,label TEXT); CREATE INDEX phonesIndex1 ON phones (person); CREATE INDEX phonesIndex2 ON phones (number_key); CREATE TRIGGER phones_delete DELETE ON phones BEGIN UPDATE people SET _sync_dirty=1 WHERE people._id=old.person;END; CREATE TRIGGER phones_insert INSERT ON phones BEGIN UPDATE people SET _sync_dirty=1 WHERE people._id=new.person;END; CREATE TRIGGER phones_update UPDATE ON phones BEGIN UPDATE people SET _sync_dirty=1 WHERE people._id=old.person;END; CREATE TRIGGER preferred_phone_cleanup DELETE ON phones BEGIN UPDATE people SET preferred_phone = NULL WHERE preferred_phone = old._id; END;
Print some of the information from the tables
sqlite> .header on .header on sqlite> .mode column .mode column sqlite> select * from phones; select * from phones; _id person type number number_key label ---------- ---------- ---------- ------------ ------------ ---------- 1 1 1 +15085551212 21215558051+ 2 1 0 +17815551212 21215551871+ 3 1 2 +16175551212 21215557161+ sqlite> select * from people; select * from people; _id _sync_account _sync_id _sync_time _sync_version _sync_local_id _sync_dirty _sync_mark name notes photo company title preferred_phone preferred_email ---------- ------------- ---------- ---------- ------------- -------------- ----------- ---------- ---------------- ---------- ---------- ---------- ---------- --------------- --------------- 1 1 Davanum Srinivas 1
Other commands
sqlite> .help .help .bail ON|OFF Stop after hitting an error. Default OFF .databases List names and files of attached databases .dump ?TABLE? ... Dump the database in an SQL text format .echo ON|OFF Turn command echo on or off .exit Exit this program .explain ON|OFF Turn output mode suitable for EXPLAIN on or off. .header(s) ON|OFF Turn display of headers on or off .help Show this message .import FILE TABLE Import data from FILE into TABLE .indices TABLE Show names of all indices on TABLE .load FILE ?ENTRY? Load an extension library .mode MODE ?TABLE? Set output mode where MODE is one of: csv Comma-separated values column Left-aligned columns. (See .width) html HTML code insert SQL insert statements for TABLE line One value per line list Values delimited by .separator string tabs Tab-separated values tcl TCL list elements .nullvalue STRING Print STRING in place of NULL values .output FILENAME Send output to FILENAME .output stdout Send output to the screen .prompt MAIN CONTINUE Replace the standard prompts .quit Exit this program .read FILENAME Execute SQL in FILENAME .schema ?TABLE? Show the CREATE statements .separator STRING Change separator used by output mode and .import .show Show the current values for various settings .tables ?PATTERN? List names of tables matching a LIKE pattern .timeout MS Try opening locked tables for MS milliseconds .width NUM NUM ... Set column widths for "column" mode
发表评论
-
如何手动编译一个APK
2011-07-07 14:55 1924he good thing about building ma ... -
android上一些方法的区别和用法的注意事项
2011-07-07 10:03 2093Intent中的addflags()和se ... -
编译Android源码的全过程
2011-05-17 23:56 1022在网上看到一篇编译android源码的文章,照着做挺行的, ... -
ubuntu 10.04和10.10上下载编译环境配置android2.2-froyo
2011-05-17 23:11 2001ubuntu 10.04和10.10上下载编译环境配置andr ... -
android进程间通信:使用AIDL
2011-05-17 15:07 1330欢迎阅读本文,你能关注本文,你知道你需要进程间通信、需要AID ... -
android 设置线程的优先级
2011-05-17 15:03 3941有两处API可以设置线程的优先级: (1)an ... -
StatusBar (状态栏)的架构(Android 2.3)
2011-05-17 15:02 1137以前我的文章分析过 StatusBar上图标显示的流程, ... -
对Task和Activity在ANDROID中的解释
2011-03-25 10:39 1401android:allowTaskReparenting ... -
Android IPC机制详解
2010-12-13 16:40 872o IBinder接口 IBinder接口是对跨进程 ... -
android 多线程
2010-12-11 17:47 993在Android下面也有多线程 ... -
android中activity的四种加载模式
2010-12-11 16:46 1184一、何为加载模式 在android的多activ ...
相关推荐
标题提到的"sqlite 无需安装数据库查看工具"指的是能够直接运行,帮助用户方便快捷地查看SQLite数据库的软件。 这个工具的最大优点就是便携性,它不需要像传统的数据库管理系统(如MySQL、PostgreSQL)那样进行繁琐...
本文将详细介绍如何使用.NET环境下的SQLite加密解密工具来确保数据库的安全。 首先,SQLite数据库的加密通常涉及到两方面的技术:透明数据加密(TDE)和应用程序级别的加密。TDE是在数据库级别进行的,数据在写入...
这个标题为"IOS 下SQLite3数据库的连接工具类"的示例代码,提供了在Xcode 4.2环境下连接和操作SQLite3数据库的工具类。 首先,要使用SQLite3,我们需要在项目中引入`libsqlite3.tbd`或`libsqlite3.dylib`库。在...
为了验证数据是否正确存储,你可以使用SQLiteStudio等工具,将JavaScript生成的SQLite数据库文件导出并进行查看。SQLiteStudio是一款直观的SQLite数据库管理工具,它提供了GUI界面,方便进行数据查看、编辑和管理。 ...
- 然后,使用这个实例调用SQLiteManager中的方法进行数据的增删改查操作。 - 当数据库需要升级时,SQLiteOpenHelper的`onUpgrade`方法会被调用,开发者可以在此方法中执行升级逻辑,如修改表结构、添加新表等。 4...
1. sqlite3.dll 和 sqlite.dll:这是SQLite数据库引擎的动态链接库文件,工具通过调用这些库来实现与SQLite数据库的交互,执行SQL语句和管理数据库。 2. sqliteadmin.exe:这是SQLite管理工具的主程序,用户通过这个...
本资源提供了一个便捷的方式来与SQLite数据库进行交互,包括必要的jar包和一个预设的工具类。下面将详细介绍如何使用这些资源以及涉及的核心Java和SQLite知识。 首先,`sqlite-jdbc.jar`是Java SQLite驱动,它允许...
在本文中,我们将深入探讨如何在LabVIEW环境中利用SQLite数据库进行数据存储和管理。SQLite是一个轻量级的、自...记得在实际操作中,确保下载并正确集成SQLite工具包,以及遵循最佳实践,以确保代码的稳定性和可靠性。
在Android开发中,SQLite...总之,SQLite是Android开发中不可或缺的数据存储工具。理解和熟练运用SQLite能帮助开发者构建高效、稳定的应用程序。在实际项目中,应根据需求灵活运用上述知识,实现高效、安全的数据管理。
Java调用SQLite数据库是开发移动应用或轻量级桌面应用时常见的技术组合。SQLite是一个开源、自包含、无服务器、零配置、事务性的SQL数据库引擎,适用于资源有限的环境,如嵌入式设备和移动设备。Eclipse作为流行的...
为了方便使用,建议将包含`sqlite3.exe`的目录添加到系统的环境变量中,这样可以在任意位置通过命令行调用SQLite工具。 ### 创建数据库 在Windows系统中创建SQLite数据库主要通过命令行方式实现,具体步骤如下: ...
在这个名为"sqlite数据库管理工具、带.net调用库和java驱动包"的压缩包中,包含了用于管理和操作SQLite数据库的工具,以及针对.NET和Java平台的驱动程序,使得开发者可以方便地在这些平台上与SQLite进行交互。...
`sqlite-3_7_2.zip`和`sqlitedll-3_7_2.zip`可能是SQLite的不同版本库,前者可能是SQLite的源代码或编译后的库文件,后者可能是Windows平台下的动态链接库文件,用于在Windows环境中调用SQLite功能。 在实际开发中...
三、SQLite工具类封装 1. 数据库操作接口:定义一个接口,包含增删改查等基本操作方法,如insert()、delete()、update()和query()。 2. 数据库帮助类:继承SQLiteOpenHelper,实现上述接口中的方法。这里需要处理SQL...
在本项目中,我们主要探讨的是如何在64位Windows操作系统上使用C# 2012编程语言通过Visual Studio 2012(VS2012)来调用SQLite数据库,并且涉及到数据库的管理和安全性,特别是设置密码。SQLite是一种轻量级的嵌入式...
在Windows环境下,程序运行时需要这个库文件来调用SQLite3的功能。开发者在编写需要使用SQLite3的程序时,可以通过链接此库来实现对数据库的操作。 `sqlite3.exe`是SQLite3的命令行工具,可以直接在命令行界面中...
SQLite数据库的创建过程极为简便,仅需通过命令行调用`sqlite3`工具并指定数据库文件名即可。若指定的文件不存在,SQLite会自动创建该文件作为数据库载体。例如: ``` sqlite3 user.db ``` 上述命令将创建名为`...
在Node.js环境中,SQLite3是一个常用的轻量级数据库,它不需要单独的服务进程,可以直接在内存中或磁盘上创建数据库文件。本篇文章将深入探讨如何使用`node-sqlite3`库来操作SQLite3数据库,并对其进行封装,以便于...
方便对SQLite数据库加密解密的小工具 功能实现参考了此网文:https://www.cnblogs.com/landv/p/11183634.html 要在C#里调用也参考以上连接,文章里有源码范例