『壹』 android開發怎麼查看和管理sqlite資料庫
在Android中可以使用Eclipse插件DDMS來查看,也可以使用Android工具包中的adb工具來查看。android項目中的sqlite資料庫位於/data/data/項目包/databases中。
使用DDMS導出sqlite資料庫。
1、首先打開android項目的調試模式,然後找到顯示DDMS:
選擇DDMS
2、切換到DDMS,顯示File Explorer窗口,找到/data/data/
然後找到程序包的文件夾,打開databases,就能看到sqlite資料庫文件了。選擇將其導出。
這樣就把sqlite資料庫文件以文件的方式導出來了,然後使用sqlite界面管理工具如sqlite administrator、sqlite man或者firefox插件sqlite manager等打開就可以了。
使用adb工具訪問sqlite資料庫
Android Debug Bridge(ADB)是Android的一個通用調試工具,它可以更新設備或模擬器中的代碼,可以管理預定埠,可以在設備上運行shell命令,我們知道android是基於linux內核,它的內部文件結構也是採用linux文件組織方式,因此訪問它的文件結構需要使用shell。這次我們就會用shell來訪問android應用中的sqlite資料庫文件。
1、運行cmd,切換到android-sdk目錄,運行adb.exe,加上參數shell,出現#號就代表進入了shell命令模式,注意adb要在Android模擬器運行時才能進入shell:
2、shell命令記住兩個基本命令ls和cd,類似windows命令提示行中的dir和cd,代表列出當前目錄下文件列表和進入到指定目錄。了解這兩個命令之後,就可以找到data/data/項目包名/databases:
找到資料庫文件:
接下來就是使用sqlite管理工具來進行操作了。鍵入sqlite3 資料庫名就進入了sqlite管理模式了。
在android的sdk中自帶了sqlite3.exe,這是sqlite的官方管理工具,它是一個命令行工具。為了使用方便,將其路徑注冊到系統環境變數path中,即將;%Android_Home%加在Path中,這樣只樣運行sqlite3,就能直接打開sqlite管理工具了。
sqlite管理資料庫篇
sqlite命令行工具默認是以;結束語句的。所以如果只是一行語句,要在末尾加;,或者在下一行中鍵入;,這樣sqlite命令才會被執行。
sqlite常用命令:
.tables--查看資料庫的表列表
.exit--退出sqlite命令行
『貳』 android開發sqlite查詢表中某一欄位的所有數據,並以數組形式表示
select 列名 from 表名 where 條件(就是你所說的列中某個值滿足的條件)。列的順序是建表時,語句創建的順序決定的。查詢出來的列的順序,是你查詢時寫的欄位的順序。如下:
表中欄位順序:
create table user(id int primary key,name text);這張表欄位順序就是id,name。
再將獲取的數據放入數組中。
建議使用三方資料庫框架,要簡單很多。
Android Study 之 玩轉GreenDao 3.2.2 點滴提升逼格~
http://www.apkbus.com/blog-904057-67980.html
『叄』 android連接sqlite資料庫,怎麼查詢資料庫裡面的數據
用DatabaseHelper類,獲得資料庫實例,然後用query方法查詢,具體參數看api吧。另外別忘記加許可權
<uses-permission android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS"/>
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
『肆』 android的sqlite的查詢全部欄位,可以不可以用*代替啊我覺得把所有欄位全部寫出來很麻煩啊
朋友,你好,sqlite支持用SQL 語言的。所以 * 是可以代替所有的。
『伍』 android sqlite 查詢所有數據沒問題 可是條件查詢卻不行
注意這里:channelItem.getId(),這個是int類型
然後在查詢的時候:
復制代碼
/**
* 根據id查詢數據
*/
public ChannelItem findById(int id) {
Cursor cursor = db.rawQuery("select * from HNBLife_Channel where id=?",
new String[]{String.valueOf(id)});
ChannelItem item = null;
while (cursor.moveToNext()) {
item = getItem(cursor);
}
return item;
}
復制代碼
注意rawQuery方法的第二個參數:這里是String類型。
所以就出現了上述問題。
解決方案很簡單,在插入的時候把int轉換成String就可以了。
『陸』 android 開發里的 SQLite資料庫的一段 查詢記錄總數,誰能講解下看不懂
//得到操作資料庫的實例
SQLiteDatabase
db
=
dbOpenHelper.getReadableDatabase();
//
調用查找書庫代碼並返回數據源
Cursor
cursor
=
db.rawQuery("select
count(*)from
person",null);
//游標移到第一條記錄准備獲取數據
cursor.moveToFirst();
//
獲取數據中的LONG類型數據
Long
count
=
cursor.getLong(0);
這些去查看Android的開發文檔都有的
『柒』 android sqlite資料庫怎麼查詢某個表中的所有欄位
Log.i("model.getInt",cursor1.getInt(cursor1.getColumnIndex("id"))+"...model.getString"+","+cursor1.getString(cursor1.getColumnIndex("id"))+",getO:"+cursor1.getInt(0)+".");
類似於這種取值方式
『捌』 android SQLite資料庫查詢
這個很簡單的:
//打開或創建test.db資料庫
SQLiteDatabasedb = openOrCreateDatabase("test.db", Context.MODE_PRIVATE, null);
//創建person表
db.execSQL("DROPTABLE IF EXISTS person");
db.execSQL("CREATE TABLE person (_idINTEGER PRIMARY KEY AUTOINCREMENT, name VARCHAR, age SMALLINT)");
//插入數據
Personperson = new Person();
person.name= "john";
person.age = 30;
db.execSQL("INSERT INTO person VALUES(NULL, ?, ?)",new Object[]{person.name, person.age});
//讀取數據
Cursor c = db.rawQuery("SELECT* FROM person WHERE age >= ?", new String[]{"33"});
while (c.moveToNext()) {
int _id = c.getInt(c.getColumnIndex("_id"));
String name = c.getString(c.getColumnIndex("name"));
int age = c.getInt(c.getColumnIndex("age"));
Log.i("db", "_id=>" + _id + ", name=>" + name + ", age=>" + age);
}
c.close();
//關閉當前資料庫
db.close();