成人无码视频,亚洲精品久久久久av无码,午夜精品久久久久久毛片,亚洲 中文字幕 日韩 无码

資訊專欄INFORMATION COLUMN

SQLite 使用詳解

lei___ / 2687人閱讀

摘要:應(yīng)用中的任何類不包括應(yīng)用外部的類均可按名稱訪問您所創(chuàng)建的任何數(shù)據(jù)庫。如果想讓自己創(chuàng)建的數(shù)據(jù)庫供外部應(yīng)用使用,請使用對外提供接口。同時期待您的關(guān)注,感謝您的閱讀,謝謝

極力推薦文章:歡迎收藏
Android 干貨分享

閱讀五分鐘,每日十點,和您一起終身學(xué)習(xí),這里是程序員Android

本篇文章主要介紹 Android 開發(fā)中的部分知識點,通過閱讀本篇文章,您將收獲以下內(nèi)容:

繼承SQLiteOpenHelper 創(chuàng)建數(shù)據(jù)庫,數(shù)據(jù)表

插入數(shù)據(jù)庫數(shù)據(jù)

刪除數(shù)據(jù)庫數(shù)據(jù)

查詢數(shù)據(jù)庫數(shù)據(jù)

修改數(shù)據(jù)庫數(shù)據(jù)

數(shù)據(jù)庫使用案例

Android 提供了對?SQLite?數(shù)據(jù)庫的完全支持。應(yīng)用中的任何類(不包括應(yīng)用外部的類)均可按名稱訪問您所創(chuàng)建的任何數(shù)據(jù)庫。如果想讓自己創(chuàng)建的數(shù)據(jù)庫供外部應(yīng)用使用,請使用 ContentProvider對外提供接口。SQLite 輕量級數(shù)據(jù)庫使用方法如下:

1. 繼承SQLiteOpenHelper 創(chuàng)建數(shù)據(jù)庫,數(shù)據(jù)表 創(chuàng)建數(shù)據(jù)庫表 1. 語法

創(chuàng)建數(shù)據(jù)表語法 如下:

2. 舉例

舉例 如下:

3.繼承SQLiteDBHelper的創(chuàng)建數(shù)據(jù)庫、數(shù)據(jù)表

創(chuàng)建數(shù)據(jù)庫、數(shù)據(jù)表 方法如下:

4.刪除數(shù)據(jù)庫表

刪除數(shù)據(jù)庫表方法如下:

DROP TABLE IF EXITS TABLE_NAME;
2. 插入數(shù)據(jù)庫數(shù)據(jù) 插入數(shù)據(jù)方法一

語法

INSERT INTO TABLE_NAME [(column1, column2, column3,...columnN)]  
VALUES (value1, value2, value3,...valueN);

舉例

INSERT INTO COMPANY (ID,NAME,AGE,ADDRESS,SALARY)
VALUES (1, "Paul", 32, "California", 20000.00 );
插入數(shù)據(jù)方法二

語法

INSERT INTO TABLE_NAME VALUES (value1,value2,value3,...valueN);

舉例

INSERT INTO COMPANY VALUES (7, "James", 24, "Houston", 10000.00 );
Android 封裝insert()插入數(shù)據(jù)方法三
1.語法
insert(String table, String nullColumnHack, ContentValues values)
2.舉例
private SQLiteDatabase db;
db.insert(SQLiteDBHelper.TABLE_NAME, null, values);
3. 刪除數(shù)據(jù)庫數(shù)據(jù) 刪除數(shù)據(jù)庫數(shù)據(jù)方法一
1.語法
DELETE FROM table_name 
WHERE [condition];
2.舉例
DELETE FROM COMPANY WHERE ID = 7;
2.Android封裝刪除數(shù)據(jù)庫數(shù)據(jù)方法二
1.語法
delete(String table, String whereClause, String[] whereArgs)
舉例
private SQLiteDatabase db;
db.delete(SQLiteDBHelper.TABLE_NAME, "name=?",
                new String[] { "Jack" });
4. 查詢數(shù)據(jù)庫數(shù)據(jù) 查詢數(shù)據(jù)庫方法一
1.語法
SELECT column1, column2, columnN FROM table_name;

查詢表中所有數(shù)據(jù)的方法

SELECT * FROM table_name;
2.舉例
//1.查詢指定的列
SELECT ID, NAME, SALARY FROM COMPANY;
// 2.查詢表中所有內(nèi)容
SELECT * FROM COMPANY;
Android 封裝查詢數(shù)據(jù)庫方法二
1.語法
query(String table, String[] columns, String selection,
            String[] selectionArgs, String groupBy, String having,
            String orderBy)
2.舉例
private SQLiteDatabase db;
Cursor cursor = db.query(SQLiteDBHelper.TABLE_NAME, null, null, null,
                null, null, null);
5. 修改數(shù)據(jù)庫數(shù)據(jù) 修改數(shù)據(jù)庫方法一
1.語法
UPDATE table_name
SET column1 = value1, column2 = value2...., columnN = valueN
WHERE [condition];
2.舉例
UPDATE COMPANY SET ADDRESS = "Texas" WHERE ID = 6;
Android update 封裝修改數(shù)據(jù)庫方法二
1.語法
update(String table, ContentValues values, String whereClause, String[] whereArgs)
2.舉例
db.update(SQLiteDBHelper.TABLE_NAME, values, "nickname=?",
                new String[] { "J" });
6. 數(shù)據(jù)庫使用案例

實現(xiàn)效果

創(chuàng)建數(shù)據(jù)庫

創(chuàng)建數(shù)據(jù)庫 方法如下:

public class SQLiteDBHelper extends SQLiteOpenHelper {
    public static String DB_NAME = "person.db";
    // version 必須大于1
    public static int DB_VERSION = 1;
    public static String TABLE_NAME = "person";
    public static String _ID = "_id";
    public static String NAME = "name";
    public static String NICK_NAME = "nickname";

    public SQLiteDBHelper(Context context, String name, CursorFactory factory,
            int version) {
        super(context, name, factory, version);
        // TODO Auto-generated constructor stub
    }

    public SQLiteDBHelper(Context context) {
        super(context, DB_NAME, null, DB_VERSION);
    }

    @Override
    public void onCreate(SQLiteDatabase db) {

        // SQLite 數(shù)據(jù)庫中,字段一般不區(qū)分類型,但是主鍵除外,主鍵必須是整型
        String sql = "CREATE TABLE " + TABLE_NAME + "(" + _ID
                + " INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL" + "," + NAME
                + " CHAR(10)," + NICK_NAME + " CHAR(10))";
        db.execSQL(sql);
    }

    // 數(shù)據(jù)庫升級的處理方法,
    @Override
    public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {

        if (newVersion > oldVersion) {
            // 刪除老的數(shù)據(jù)表,創(chuàng)建新表
            String dropsql = "DROP TABLE IF EXITS " + TABLE_NAME;
            db.execSQL(dropsql);
            onCreate(db);
        }
    }

}
數(shù)據(jù)庫增加數(shù)據(jù)方法實現(xiàn)

數(shù)據(jù)庫增加數(shù)據(jù)方法實現(xiàn)代碼如下:

    //
    public void InsertSQL(View view) {

        InstertDB();
        QueryDB();
    }

    /**
     * 插入數(shù)據(jù)處理方法
     */
    private void InstertDB() {
        ContentValues values = new ContentValues();
        values.put("name", "Jack");
        values.put("nickname", "J");

        // 返回值:最近插入的那一行的行號
        long result = db.insert(SQLiteDBHelper.TABLE_NAME, null, values);
        if (result > 0) {
            Toast.makeText(getApplicationContext(), "添加成功", Toast.LENGTH_SHORT)
                    .show();
        } else {
            Toast.makeText(getApplicationContext(), "添加失敗", Toast.LENGTH_SHORT)
                    .show();
        }
    }
數(shù)據(jù)庫刪除內(nèi)容方法實現(xiàn)

數(shù)據(jù)庫刪除內(nèi)容方法實現(xiàn)代碼如下:

    /**
     * 刪除數(shù)據(jù)
     */
    private void DeleteDb() {
        int result = db.delete(SQLiteDBHelper.TABLE_NAME, "name=?",
                new String[] { "Jack" });
        if (result > 0) {
            Toast.makeText(getApplicationContext(), "刪除成功", Toast.LENGTH_SHORT)
                    .show();
        } else {
            Toast.makeText(getApplicationContext(), "無Jack", Toast.LENGTH_SHORT)
                    .show();
        }
    }
數(shù)據(jù)庫修改內(nèi)容方法實現(xiàn)

數(shù)據(jù)庫修改內(nèi)容方法實現(xiàn)代碼如下:

    /**
     * 修改數(shù)據(jù)
     */
    private void UpdateDb() {
        // update person set name="Kitty" where nickname="J"
        ContentValues values = new ContentValues();
        values.put("name", "Lucy");

        int result = db.update(SQLiteDBHelper.TABLE_NAME, values, "nickname=?",
                new String[] { "J" });

        if (result > 0) {
            QueryDB();
        }
    }
數(shù)據(jù)庫查詢方法實現(xiàn)

數(shù)據(jù)庫查詢方法實現(xiàn)代碼如下:

    /**
     * 查詢數(shù)據(jù)處理方法
     */
    private void QueryDB() {
        // Select * from person where name= ?
        // db.rawQuery(s)
        // cursor 游標(biāo)--》 結(jié)果集合
        // 當(dāng)使用SimpleCusorAdapter 時候,cursor 這個記過里面 必須包含“_id”,這個字段
        // Cursor cursor = db.query(SQLiteDBHelper.TABLE_NAME, null, "name=?",
        // new String[] { "Jack" }, null, null, null);
        Cursor cursor = db.query(SQLiteDBHelper.TABLE_NAME, null, null, null,
                null, null, null);

        while (cursor.moveToNext()) {

            String name = cursor.getString(cursor.getColumnIndex("name"));
            String nickname = cursor.getString(cursor
                    .getColumnIndex("nickname"));
        }
        // 將一個新的cusor跟原有的custor 交換
        adapter.swapCursor(cursor);
        adapter.notifyDataSetChanged();
    }

布局如下



    

ListView item布局如下




    

    

至此,本篇已結(jié)束,如有不對的地方,歡迎您的建議與指正。同時期待您的關(guān)注,感謝您的閱讀,謝謝!

文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://m.hztianpu.com/yun/75894.html

相關(guān)文章

發(fā)表評論

0條評論

閱讀需要支付1元查看
<