編輯:關於android開發
1.SQLite簡介
SQLite是一款輕型的數據庫,是遵守ACID的關聯式數據庫管理系統,它的設計目標是嵌入 式的,而且目前已經在很多嵌入式產品中使用了它,它占用資源非常的低,在嵌入式設備中,可能只需要幾百K的內存就夠了。它能夠支持 Windows/Linux/Unix等等主流的操作系統,同時能夠跟很多程序語言相結合,比如Tcl、PHP、Java、C++、.Net等,還有ODBC接口,同樣比起 Mysql、PostgreSQL這兩款開源世界著名的數據庫管理系統來講,它的處理速度比他們都快。
2.SQLite數據類型
一般數據采用的固定的靜態數據類型,而SQLite采用的是動態數據類型,會根據存入值自動判斷。SQLite具有以下五種常用的數據類型:
NULL: 這個值為空值
VARCHAR(n):長度不固定且其最大長度為 n 的字串,n不能超過 4000。
CHAR(n):長度固定為n的字串,n不能超過 254。
INTEGER: 值被標識為整數,依據值的大小可以依次被存儲為1,2,3,4,5,6,7,8.
REAL: 所有值都是浮動的數值,被存儲為8字節的IEEE浮動標記序號.
TEXT: 值為文本字符串,使用數據庫編碼存儲(TUTF-8, UTF-16BE or UTF-16-LE).
BLOB: 值是BLOB數據塊,以輸入的數據格式進行存儲。如何輸入就如何存儲,不改 變格式。
DATA :包含了 年份、月份、日期。
TIME: 包含了 小時、分鐘、秒。
3.SQLiteDatabase的常用方法
方法名稱 方法表示含義 openOrCreateDatabase(String path,SQLiteDatabase.CursorFactory factory) 打開或創建數據庫 insert(String table,String nullColumnHack,ContentValues values) 插入一條記錄 delete(String table,String whereClause,String[] whereArgs) 刪除一條記錄 query(String table,String[] columns,String selection,String[] selectionArgs,String groupBy,String having,String orderBy) 查詢一條記錄 update(String table,ContentValues values,String whereClause,String[] whereArgs) 修改記錄 execSQL(String sql) 執行一條SQL語句 close() 關閉數據庫下面就在代碼中查看詳細的解釋:
SQLiteActivity
1 package mars.sqlite3;
2
3 import mars.sqlite3.db.DatabaseHelper;
4 import android.app.Activity;
5 import android.content.ContentValues;
6 import android.database.Cursor;
7 import android.database.sqlite.SQLiteDatabase;
8 import android.os.Bundle;
9 import android.util.Log;
10 import android.view.View;
11 import android.view.View.OnClickListener;
12 import android.widget.Button;
13
14 public class SQLiteActivity extends Activity {
15 /** Called when the activity is first created. */
16 private Button createButton;
17 private Button insertButton;
18 private Button updateButton;
19 private Button updateRecordButton;
20 private Button queryButton;
21 @Override
22 public void onCreate(Bundle savedInstanceState) {
23 super.onCreate(savedInstanceState);
24 setContentView(R.layout.main);
25 createButton = (Button)findViewById(R.id.createDatabase);
26 updateButton = (Button)findViewById(R.id.updateDatabase);
27 insertButton = (Button)findViewById(R.id.insert);
28 updateRecordButton = (Button)findViewById(R.id.update);
29 queryButton = (Button)findViewById(R.id.query);
30 createButton.setOnClickListener(new CreateListener());
31 updateButton.setOnClickListener(new UpdateListener());
32 insertButton.setOnClickListener(new InsertListener());
33 updateRecordButton.setOnClickListener(new UpdateRecordListener());
34 queryButton.setOnClickListener(new QueryListener());
35 }
36 class CreateListener implements OnClickListener{
37 @Override
38 public void onClick(View v) {
39 //創建一個DatabaseHelper對象
40 DatabaseHelper dbHelper = new DatabaseHelper(SQLiteActivity.this,"test_mars_db");
41 //只有調用了DatabaseHelper對象的getReadableDatabase()方法,或者是getWritableDatabase()方法之後,才會創建,或打開一個數據庫
42 SQLiteDatabase db = dbHelper.getReadableDatabase();
43 }
44 }
45 class UpdateListener implements OnClickListener{
46
47 @Override
48 public void onClick(View v) {
49 DatabaseHelper dbHelper = new DatabaseHelper(SQLiteActivity.this,"test_mars_db",2);
50 SQLiteDatabase db = dbHelper.getReadableDatabase();
51 }
52
53 }
54 class InsertListener implements OnClickListener{
55
56 @Override
57 public void onClick(View v) {
58 //生成ContentValues對象
59 ContentValues values = new ContentValues();
60 //想該對象當中插入鍵值對,其中鍵是列名,值是希望插入到這一列的值,值必須和數據庫當中的數據類型一致
61 values.put("id", 1);
62 values.put("name","zhangsan");
63 DatabaseHelper dbHelper = new DatabaseHelper(SQLiteActivity.this,"test_mars_db",2);
64 SQLiteDatabase db = dbHelper.getWritableDatabase();
65 //調用insert方法,就可以將數據插入到數據庫當中
66 db.insert("user", null, values);
67 }
68 }
69 //更新操作就相當於執行SQL語句當中的update語句
70 //UPDATE table_name SET XXCOL=XXX WHERE XXCOL=XX...
71 class UpdateRecordListener implements OnClickListener{
72
73 @Override
74 public void onClick(View arg0) {
75 // TODO Auto-generated method stub
76 //得到一個可寫的SQLiteDatabase對象,這裡的version必須為2時才可以,因為剛開始的時候更新為了2,如果為1的話會出現空異常錯誤
77 DatabaseHelper dbHelper = new DatabaseHelper(SQLiteActivity.this,"test_mars_db",2);
78 SQLiteDatabase db = dbHelper.getWritableDatabase();
79 ContentValues values = new ContentValues();
80 values.put("name", "zhangsanfeng");
81 //第一個參數是要更新的表名
82 //第二個參數是一個ContentValeus對象
83 //第三個參數是where子句
84 db.update("user", values, "id=?", new String[]{"1"});
85 }
86 }
87 class QueryListener implements OnClickListener{
88
89 @Override
90 public void onClick(View v) {
91 System.out.println("aaa------------------");
92 Log.d("myDebug", "myFirstDebugMsg");
93
94 //以下是出錯的代碼
95 DatabaseHelper dbHelper = new DatabaseHelper(SQLiteActivity.this,"test_mars_db",2);
96 SQLiteDatabase db = dbHelper.getReadableDatabase();
97
98 //參數1:表名
99 //參數2:要想顯示的列
100 //參數3:where子句
101 //參數4:where子句對應的條件值
102 //參數5:分組方式
103 //參數6:having條件
104 //參數7:排序方式
105 Cursor cursor = db.query("user", new String[]{"id","name"}, "id=?", new String[]{"1"}, null, null, null);
106 while(cursor.moveToNext()){
107 String name = cursor.getString(cursor.getColumnIndex("name"));
108 System.out.println("query--->" + name);
109 }
110 db.close();
111 }
112 }
113
114 }
DatabaseHelper
1 package mars.sqlite3.db;
2
3 import android.content.Context;
4 import android.database.sqlite.SQLiteDatabase;
5 import android.database.sqlite.SQLiteOpenHelper;
6 import android.database.sqlite.SQLiteDatabase.CursorFactory;
7
8 //DatabaseHelper作為一個訪問SQLite的助手類,提供兩個方面的功能,
9 //第一,getReadableDatabase(),getWritableDatabase()可以獲得SQLiteDatabse對象,通過該對象可以對數據庫進行操作
10 //第二,提供了onCreate()和onUpgrade()兩個回調函數,允許我們在創建和升級數據庫時,進行自己的操作
11
12 public class DatabaseHelper extends SQLiteOpenHelper {
13
14 private static final int VERSION = 1;
15 //在SQLiteOepnHelper的子類當中,必須有該構造函數
16 public DatabaseHelper(Context context, String name, CursorFactory factory,
17 int version) {
18 //必須通過super調用父類當中的構造函數
19 super(context, name, factory, version);
20 // TODO Auto-generated constructor stub
21 }
22 public DatabaseHelper(Context context,String name){
23 this(context,name,VERSION);
24 }
25 public DatabaseHelper(Context context,String name,int version){
26 this(context, name,null,version);
27 }
28
29 //該函數是在第一次創建數據庫的時候執行,實際上是在第一次得到SQLiteDatabse對象的時候,才會調用這個方法
30 @Override
31 public void onCreate(SQLiteDatabase db) {
32 // TODO Auto-generated method stub
33 System.out.println("create a Database");
34 //execSQL函數用於執行SQL語句
35 db.execSQL("create table user(id int,name varchar(20))");
36 }
37
38 @Override
39 public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
40 // TODO Auto-generated method stub
41 System.out.println("update a Database");
42 }
43
44 }
效果截圖如下:

查詢數據截圖:

更新數據然後查詢數據截圖:

使用命令來查詢sqlite數據庫
首先打開adb調試,如果打開不成功,說明adb添加到環境變量裡面,把adb添加到環境變量裡面即可,具體的百度一下,比較簡單。
如果出現下面的說明成功:
因為Android是基於Linux內核開發的所以可以使用shell命令進行操作,但是在打開此命令的時候有可能會報錯,這時最大的可能就是你的模擬機沒有開,開開模擬機就不會有這樣的錯誤:

然後開始使用Linux命令操作sqlite,首先進入data包,然後一直到顯示所有的工程名就可以了:

然後進入包來尋找數據庫:

進入databases數據庫:

注意:這裡的ls -l是顯示包裡面的所有的包的:
然後使用sqlite3進行操作數據庫語句:


到這裡就結束了,具體的可以自己實踐實踐。在這裡給大家推薦一個個人認為不錯的博客:http://blog.csdn.net/codeeer/article/details/30237597
Android消息機制入門,android機制入門
Android消息機制入門,android機制入門接著處理《Android 網絡圖片查看器》中出現的問題 使用添加子線程,修改原程序: package com.wuyu
圓形頭像CircleImageView和Cardview使用,circleimageview
圓形頭像CircleImageView和Cardview使用,circleimageview效果: 圓形頭像在我們的日常使用的
網上商城4--首頁二級分類的查詢,4--二級分類
網上商城4--首頁二級分類的查詢,4--二級分類 1.創建表 CREATE TABLE `categorysecond` ( `csid` int(1
WebView的使用,WebView使用
WebView的使用,WebView使用1.首先修改activity.xml中的代碼: 2.然後MainActivity中的代碼: 3.最後設置權限: <use