Android SQLite簡單使用

來源:互聯網
上載者:User

 增、刪、改、建表、修改表結構:
void execSQL(String sql)

查:
Cursor rawQuery(String sql, String[] selectionArgs)

寫個簡單的例子:
package cn.aa;

import android.app.Activity;

import android.database.Cursor;

import android.database.sqlite.SQLiteDatabase;

import android.database.sqlite.SQLiteException;

import android.os.Bundle;

public
class simpleSQLiteTestActivity extends Activity {


/** Called when the activity is first created. */


@Override


public void onCreate(Bundle savedInstanceState) {

    super.onCreate(savedInstanceState);

    setContentView(R.layout.main);

    // 簡單示意一下吧,介面神馬的都不管了

    try {

        // 1.建立或開啟資料庫

        // 最後一個參數根據實際情況可以選擇

        // SQLiteDatabase.CREATE_IF_NECESSARY、

        // SQLiteDatabase.OPEN_READONLY、

        // 或SQLiteDatabase.CREATE_IF_NECESSARY + SQLiteDatabase.OPEN_READONLY

        // 或者,您也可以使用Mars老師教的那個方法建立

        String dbName = "/data/data/cn.aa/userinfo_db";

        SQLiteDatabase db = SQLiteDatabase.openDatabase(dbName, null,SQLiteDatabase.CREATE_IF_NECESSARY);


        // 2.建立表

        // 我要執行的在已開啟的資料庫中建立表的SQL語句是:

        // create table t_userinfo(userId int primary key,name varchar(100),height double)

        // execSQL方法的參數可以寫成確定的SQL語句字串,也可以用字串串連更靈活的拼出您想要的SQL語句

        // 第二遍執行的時候記得把這句注釋掉。不能重複建同名表

        db.execSQL("create table t_userinfo(userId int primary key,name varchar(100),height double)");


        // 3.添加記錄

        // 我要執行的向表t_userinfo添加記錄的SQL語句是:

        // insert into t_userinfo values(1,"張三",1.85)

        // 注意下面這幾句的SQL語句是我用字串串連拼出來的

        // 另外注意SQL語句中的雙引號"需要寫成逸出字元\"

        int userId = 1;

        db.execSQL("insert into t_userinfo values(" + userId++ + ",\"張三\",1.85)");

        db.execSQL("insert into t_userinfo values(" + userId++ + ",\"李四\",1.76)");

        db.execSQL("insert into t_userinfo values(" + userId++ + ",\"王五\",1.82)");

    // 4.修改記錄

       // 我要執行的在表t_userinfo中修改記錄的SQL語句是:

       // update t_userinfo set height = 1.65 where name = "張三"

        String userName = "張三";

        db.execSQL("update t_userinfo set height = 1.65 where name = \"" + userName + "\"");


        // 5.刪除記錄

       // 我要執行的在表t_userinfo中刪除記錄的SQL語句是:

       // delete from t_userinfo where name = "李四"

       // 這次把SQL語句寫死吧,不拼了,累……

        db.execSQL("delete from t_userinfo where name = \"李四\"");


        // 6.查詢

       // 我要執行的在表t_userinfo中查詢的SQL語句是:

       // select * from t_userinfo

       // 這個要使用rawQuery方法,它的傳回值是一個Cursor

       // 您可以選擇自己拼接您的SQL語句,或者使用萬用字元?配合第二個參數selectionArgs來獲得靈活性,效果一樣

        Cursor rows = db.rawQuery("select * from t_userinfo", null);

        while (rows.moveToNext()) {

              int id = rows.getInt(rows.getColumnIndex("userId"));

              String name = rows.getString(rows.getColumnIndex("name"));

              double height = rows.getDouble(rows.getColumnIndex("height"));

              System.out.println(id + "\t" + name + "\t" + height);

        }

 

        //最後不要忘了關閉資料庫
        db.close();

        catch (SQLiteException e) {

            e.printStackTrace();

        }

    }

}

呵呵,那得看您要不要掌握SQL了。
我評價SQL就是獨孤九劍,劍招極少(總共就creat、alter、insert、update、delete、select六個語句,比獨孤九劍還少三招,而且其中變化繁雜的就select一招),威力極大(能夠應付資料庫的所有操作),變化極繁(主要是select,那叫一個千變萬化)

要是您以後都用不到SQL,那琢磨琢磨SQLiteDatabase類裡面的函數,搞清楚各個參數的意義,用起來也一樣的。

但是我想您既然用到sqlite了,以後保不齊會用別的資料庫。那就還不如把SQL學好(現在資料庫不支援SQL是不可想象的)。那樣的話我這個方法的優勢就很明顯了。只要您能寫出SQL語句,這兩個函數就夠了。

只需要知道3點:
1.SQL語句寫成字串形式作為函數的參數
2.可以拼接SQL語句獲得靈活性
3.注意把SQL語句中的引號寫成逸出字元

****************************************************************************

 

1.  //取得數據庫及所在位置。注意,此處用的StringBuilder,是為了節約記憶體,減少String操作時產生記憶體消耗(String操作時,將發生記憶體的申請與釋放,比較耗記憶體)。

2.  StringBuilder ji串連文本_S = new StringBuilder(60);

3.  ji串連文本_S.append(this.getClass().getPackage().getName());

4.  ji串連文本_S.insert(0, "/data/data/");

5.  ji串連文本_S.append("/database/userinfo_db");

 

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.