如何讀取第三方應用的資料庫?(PART 2)

2021-10-09 09:00:10 字數 1237 閱讀 1037

public static void move(string oldpath,string newpath)catch (exception e)finally 

process.destroy();

}catch (exception ee){}

}}

將db檔案複製到公有空間(如外部儲存)之後,我們就可以通過sqlitedatabase操作這個資料庫了,接下來又有乙個小小的問題,我們怎麼知道資料庫中有哪些表呢?之所以說小小的問題,而不是小問題,是因為它太小了哈哈(如果你了解sqlite_master這個系統表)。

sqlitedatabase每建立乙個新的資料庫(db),都會自動生成乙個內建表sqlite_master,我們看下該錶的結構:

create table sqlite_master (

type text,

name text,

tbl_name text,

rootpage integer,

sql text

);應該能猜測出這是幹嘛用的吧?此表中儲存著當前資料庫中所有表的相關資訊,比如表的名稱、用於建立此表的sql語句、索引、索引所屬的表、建立索引的sql語句等。所以,我們可以通過該錶獲取db中有哪些表。

話不多說,上**:

sqlitedatabase db = sqlitedatabase.openorcreatedatabase(dbpath, null);

listtables = new arraylist<>();

if(db!=null)

}

到現在,資料庫、資料庫中有哪些表都已經取到了,就差最後列印表內的資料了。到這一步,該需求已經沒有任何難度了,直接上**:

sqlitedatabase db = sqlitedatabase.openorcreatedatabase(dbpath, null);

listdatas = new arraylist<>();

if(db!=null){

cursor cursor = db.rawquery("select * from "+tbname, null);

while (cursor.movetonext()) {

string data = "";

for(int i = 0;i資料已經取到了,至於要幹嘛用,就是經理的個人問題咯~

程式設計乙個很大的魅力,在於可以將不可能變為可能!

如何讀取第三方應用的資料庫?(PART 1)

怎麼辦呢?要不要去告訴經理該需求難以實現呢?哈哈,咱們回顧下開頭的那段對話,裡面有我們的解決方案!沒錯,我們可以root嘛,雖然安卓並不是很喜歡root這個東西,但是針對這個需求,它卻是乙個好東西呢。至於如何root,網上有太多太多的方案,這裡就不再贅述,只是給大家分享一下我參考的一種方式 root...

IOS第三方資料庫 FMDB

ios中原生的sqlite api在使用上相當不友好,在使用時,非常不便。於是,就出現了一系列將sqlite api進行封裝的庫,例如fmdb plausibledatabase sqlitepersistentobjects等,fmdb 是一款簡潔 易用的封裝庫,這一篇文章簡單介紹下fmdb的使用...

IOS第三方資料庫 FMDB

ios中原生的sqlite api在使用上相當不友好,在使用時,非常不便。於是,就出現了一系列將sqlite api進行封裝的庫,例如fmdb plausibledatabase sqlitepersistentobjects等,fmdb 是一款簡潔 易用的封裝庫,這一篇文章簡單介紹下fmdb的使用...