一区二区三区电影_国产伦精品一区二区三区视频免费_亚洲欧美国产精品va在线观看_国产精品一二三四

聯(lián)系我們 - 廣告服務(wù) - 聯(lián)系電話: 2025年05月18日 02:38 星期日
您的當前位置: > 關(guān)注 > > 正文

動態(tài)焦點:安卓開發(fā)Android studio學習筆記 利用SQLiteDatabase操作數(shù)據(jù)表

來源:CSDN 時間:2023-02-15 11:16:05


(資料圖片僅供參考)

Android studio學習筆記

第一步:配置strings.xml第二步:配置activity_main.xml第三步:配置MainActivity第四步:查看代碼運行結(jié)果截圖

第一步:配置strings.xml

利用SQLiteDatabase操作數(shù)據(jù)表創(chuàng)建或打開數(shù)據(jù)庫創(chuàng)建表添加表記錄更新表記錄顯示全部表記錄刪除全部表記錄刪除表刪除數(shù)據(jù)庫

第二步:配置activity_main.xml

第三步:配置MainActivitypackage com.example.myapp01;import android.content.ContentValues;import android.content.Context;import android.database.Cursor;import android.database.SQLException;import android.database.sqlite.SQLiteDatabase;import android.os.Bundle;import android.view.View;import android.widget.Toast;import androidx.appcompat.app.AppCompatActivity;public class MainActivity extends AppCompatActivity {private final String DB_NAME = "student.db"; // 數(shù)據(jù)庫名    private final String TABLE_NAME = "student"; // 表名    private final int MODE = Context.MODE_PRIVATE; // 訪問模式    private SQLiteDatabase db; // SQLite數(shù)據(jù)庫    private int id; // 學號    @Override    protected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main);    }    /**     * 創(chuàng)建或打開數(shù)據(jù)庫     *     * @param view     */    public void doCreateOrOpenDB(View view) {// 判斷數(shù)據(jù)庫是否存在        if (databaseList().length == 0) {// 創(chuàng)建數(shù)據(jù)庫            db = openOrCreateDatabase(DB_NAME, MODE, null);            // 提示用戶數(shù)據(jù)庫創(chuàng)建成功            Toast.makeText(this, "恭喜,數(shù)據(jù)庫【" + DB_NAME + "】創(chuàng)建成功!", Toast.LENGTH_LONG).show();        } else {// 打開數(shù)據(jù)庫            db = openOrCreateDatabase(DB_NAME, MODE, null);            // 提示用戶數(shù)據(jù)庫打開成功            Toast.makeText(this, "恭喜,數(shù)據(jù)庫【" + DB_NAME + "】打開成功!", Toast.LENGTH_LONG).show();        }    }    /**     * 創(chuàng)建表     *     * @param view     */    public void doCreateTable(View view) {// 判斷數(shù)據(jù)庫對象是否為空        if (db == null) {// 判斷數(shù)據(jù)庫是否存在            if (databaseList().length == 0) {Toast.makeText(this, "請創(chuàng)建數(shù)據(jù)庫【" + DB_NAME + "】。", Toast.LENGTH_LONG).show();            } else {Toast.makeText(this, "請打開數(shù)據(jù)庫【" + DB_NAME + "】。", Toast.LENGTH_LONG).show();            }        } else {// 判斷表是否存在            if (isTableExisted(TABLE_NAME)) {// 彈出吐司提示用戶表已存在                Toast.makeText(this, "表【" + TABLE_NAME + "】已經(jīng)存在!", Toast.LENGTH_LONG).show();            } else {try {// 定義SQL字符串                    String strSQL = "CREATE TABLE " + TABLE_NAME + "(id integer, name text, gender text)";                    // 執(zhí)行SQL語句                    db.execSQL(strSQL);                    // 提示用戶創(chuàng)建表成功                    Toast.makeText(this, "創(chuàng)建表成功!", Toast.LENGTH_LONG).show();                } catch (SQLException e) {// 提示用戶創(chuàng)建表失敗                    Toast.makeText(this, "創(chuàng)建表失敗!", Toast.LENGTH_LONG).show();                }            }        }    }    /**     * 判斷表是否存在     *     * @param tableName     * @return true 表存在;false 表不存在     */    private boolean isTableExisted(String tableName) {// 定義SQL字符串        String strSQL = "SELECT * FROM sqlite_master WHERE type = ? AND name = ?";        // 執(zhí)行SQL查詢,返回游標        Cursor cursor = db.rawQuery(strSQL, new String[]{"table", tableName});        // 判斷游標里是否有記錄        if (cursor.getCount() > 0) {return true;        } else {return false;        }    }    /**     * 添加表記錄     *     * @param view     */    public void doAddRecord(View view) {// 判斷數(shù)據(jù)庫對象是否為空        if (db == null) {// 判斷數(shù)據(jù)庫是否存在            if (databaseList().length == 0) {Toast.makeText(this, "請創(chuàng)建數(shù)據(jù)庫【" + DB_NAME + "】。", Toast.LENGTH_LONG).show();            } else {Toast.makeText(this, "請打開數(shù)據(jù)庫【" + DB_NAME + "】。", Toast.LENGTH_LONG).show();            }        } else {// 判斷表是否存在            if (isTableExisted(TABLE_NAME)) {// 獲取新記錄的學號                id = getNewId(TABLE_NAME);                // 創(chuàng)建內(nèi)容值對象                ContentValues values = new ContentValues();                // 以鍵值對方式添加字段數(shù)據(jù)                values.put("id", id);                values.put("name", "學生" + id);                values.put("gender", id % 2 == 1 ? "男" : "女");                // 將數(shù)據(jù)插入表中                long count = db.insert(TABLE_NAME, null, values);                if (count != -1) {// 彈出吐司提示用戶添加成功                    Toast.makeText(this, "恭喜,表記錄添加成功!", Toast.LENGTH_LONG).show();                } else {// 彈出吐司提示用戶添加失敗                    Toast.makeText(this, "恭喜,表記錄添加失敗!", Toast.LENGTH_LONG).show();                }            } else {// 提示用戶先創(chuàng)建表                Toast.makeText(this, "表【" + TABLE_NAME + "】不存在,請先創(chuàng)建!", Toast.LENGTH_LONG).show();            }        }    }    /**     * 獲取新記錄的學號     *     * @param tableName     * @return     */    private int getNewId(String tableName) {// 判斷表是否存在        if (isTableExisted(tableName)) {// 查詢?nèi)勘碛涗洠祷赜螛?           Cursor cursor = db.query(tableName, null, null, null, null, null, null);            // 移到最后一條記錄            if (cursor.moveToLast()) {// 獲取最后一條記錄的id                int id = cursor.getInt(0);                // 返回新記錄的id                return id + 1;            }        }        return 1;    }    /**     * 更新表記錄     *     * @param view     */    public void doUpdateRecord(View view) {// 判斷數(shù)據(jù)庫對象是否為空        if (db == null) {// 判斷數(shù)據(jù)庫是否存在            if (databaseList().length == 0) {Toast.makeText(this, "請創(chuàng)建數(shù)據(jù)庫【" + DB_NAME + "】。", Toast.LENGTH_LONG).show();            } else {Toast.makeText(this, "請打開數(shù)據(jù)庫【" + DB_NAME + "】。", Toast.LENGTH_LONG).show();            }        } else {// 判斷表是否存在            if (isTableExisted(TABLE_NAME)) {// 判斷是否有表記錄                if (getRecordCount(TABLE_NAME) > 0) {// 定義SQL字符串                    String strSQL = "UPDATE " + TABLE_NAME + " SET name = ?, gender = ? WHERE id = ?";                    try {// 執(zhí)行SQL,返回更新表記錄數(shù)                        db.execSQL(strSQL, new Object[]{"張曉蕓", "女", 1});                        // 提示用戶更新記錄成功                        Toast.makeText(this, "恭喜,表記錄更新成功!", Toast.LENGTH_LONG).show();                    } catch (SQLException e) {// 提示用戶更新記錄失敗                        Toast.makeText(this, "遺憾,表記錄更新失敗!", Toast.LENGTH_LONG).show();                    }                } else {// 彈出吐司提示用戶沒有表記錄                    Toast.makeText(this, "沒有表記錄可更新,請先添加表記錄!", Toast.LENGTH_LONG).show();                }            } else {// 提示用戶先創(chuàng)建表                Toast.makeText(this, "表【" + TABLE_NAME + "】不存在,請先創(chuàng)建!", Toast.LENGTH_LONG).show();            }        }    }    /**     * 返回表記錄數(shù)     *     * @param tableName     * @return 表記錄數(shù)     */    private int getRecordCount(String tableName) {// 定義SQL字符串        String strSQL = "SELECT * FROM " + tableName;        // 執(zhí)行SQL,返回游標        Cursor cursor = db.rawQuery(strSQL, null);        // 返回記錄數(shù)        return cursor.getCount();    }    /**     * 顯示全部表記錄     *     * @param view     */    public void doDisplayAllRecords(View view) {// 判斷數(shù)據(jù)庫對象是否為空        if (db == null) {// 判斷數(shù)據(jù)庫是否存在            if (databaseList().length == 0) {Toast.makeText(this, "請創(chuàng)建數(shù)據(jù)庫【" + DB_NAME + "】。", Toast.LENGTH_LONG).show();            } else {Toast.makeText(this, "請打開數(shù)據(jù)庫【" + DB_NAME + "】。", Toast.LENGTH_LONG).show();            }        } else {// 判斷表是否存在            if (isTableExisted(TABLE_NAME)) {// 判斷表里是否有記錄                if (getRecordCount(TABLE_NAME) > 0) {// 定義SQL字符串                    String strSQL = "SELECT * FROM " + TABLE_NAME;                    // 執(zhí)行SQL,返回游標                    Cursor cursor = db.query(TABLE_NAME, null, null, null, null, null, null);                    // 定義字符串生成器                    StringBuilder builder = new StringBuilder();                    // 遍歷游標對象(記錄集)                    while (cursor.moveToNext()) {// 將每條記錄信息組合之后添加到字符串生成器                        builder.append(cursor.getInt(0) + " " + cursor.getString(1) + " " + cursor.getString(2) + "\n");                    }                    // 彈出吐司顯示全部學生記錄                    Toast.makeText(this, "全部表記錄\n\n" + builder.toString(), Toast.LENGTH_LONG).show();                } else {// 彈出吐司提示用戶沒有表記錄                    Toast.makeText(this, "沒有表記錄可顯示,請先添加表記錄!", Toast.LENGTH_LONG).show();                }            } else {// 提示用戶先創(chuàng)建表                Toast.makeText(this, "表【" + TABLE_NAME + "】不存在,請先創(chuàng)建!", Toast.LENGTH_LONG).show();            }        }    }    /**     * 刪除全部表記錄(三個層面的判斷)     *     * @param view     */    public void doDeleteAllRecords(View view) {// 判斷數(shù)據(jù)庫對象是否為空        if (db == null) {// 判斷數(shù)據(jù)庫是否存在            if (databaseList().length == 0) {Toast.makeText(this, "請創(chuàng)建數(shù)據(jù)庫【" + DB_NAME + "】。", Toast.LENGTH_LONG).show();            } else {Toast.makeText(this, "請打開數(shù)據(jù)庫【" + DB_NAME + "】。", Toast.LENGTH_LONG).show();            }        } else {// 判斷表是否存在            if (isTableExisted(TABLE_NAME)) {// 判斷是否有表記錄                if (getRecordCount(TABLE_NAME) > 0) {// 定義SQL字符串                    String strSQL = "DELETE FROM " + TABLE_NAME;                    try {// 執(zhí)行SQL,刪除表記錄                        db.execSQL(strSQL);                        // 提示用戶刪除表記錄成功                        Toast.makeText(this, "全部表記錄已刪除!", Toast.LENGTH_LONG).show();                    } catch (SQLException e) {// 提示用戶刪除表記錄失敗                        Toast.makeText(this, "刪除表記錄失敗!", Toast.LENGTH_LONG).show();                    }                } else {// 彈出吐司提示用戶沒有表記錄                    Toast.makeText(this, "沒有表記錄可刪除,請先添加表記錄!", Toast.LENGTH_LONG).show();                }            } else {// 提示用戶先創(chuàng)建表                Toast.makeText(this, "表【" + TABLE_NAME + "】不存在,請先創(chuàng)建!", Toast.LENGTH_LONG).show();            }        }    }    /**     * 刪除表     *     * @param view     */    public void doDeleteTable(View view) {// 判斷數(shù)據(jù)庫對象是否為空        if (db == null) {// 判斷數(shù)據(jù)庫是否存在            if (databaseList().length == 0) {Toast.makeText(this, "請創(chuàng)建數(shù)據(jù)庫【" + DB_NAME + "】。", Toast.LENGTH_LONG).show();            } else {Toast.makeText(this, "請打開數(shù)據(jù)庫【" + DB_NAME + "】。", Toast.LENGTH_LONG).show();            }        } else {// 判斷表是否存在            if (isTableExisted(TABLE_NAME)) {// 定義SQL字符串                String strSQL = "DROP TABLE " + TABLE_NAME;                try {// 執(zhí)行SQL,刪除表                    db.execSQL(strSQL);                    // 提示用戶表刪除成功                    Toast.makeText(this, "表刪除成功!", Toast.LENGTH_LONG).show();                } catch (SQLException e) {// 提示用戶表刪除失敗                    Toast.makeText(this, "表刪除失敗!", Toast.LENGTH_LONG).show();                }            } else {// 提示用戶先創(chuàng)建表                Toast.makeText(this, "表【" + TABLE_NAME + "】不存在,請先創(chuàng)建!", Toast.LENGTH_LONG).show();            }        }    }    /**     * 刪除數(shù)據(jù)庫     *     * @param view     */    public void doDeleteDB(View view) {// 判斷數(shù)據(jù)庫是否存在        if (databaseList().length == 0) {// 提示用戶沒有數(shù)據(jù)庫            Toast.makeText(this, "沒有數(shù)據(jù)庫可刪除!", Toast.LENGTH_LONG).show();        } else {// 判斷數(shù)據(jù)庫刪除是否成功            if (deleteDatabase(DB_NAME)) {// 提示用戶刪除成功                Toast.makeText(this, "數(shù)據(jù)庫【" + DB_NAME + "】刪除成功!", Toast.LENGTH_LONG).show();            } else {// 提示用戶刪除失敗                Toast.makeText(this, "數(shù)據(jù)庫【" + DB_NAME + "】刪除失敗!", Toast.LENGTH_LONG).show();            }        }    }}第四步:查看代碼運行結(jié)果截圖具體功能就不一 一展示了 較為繁瑣

責任編輯:

標簽:

相關(guān)推薦:

精彩放送:

新聞聚焦
Top 主站蜘蛛池模板: 江源县| 阜平县| 温州市| 德庆县| 威宁| 越西县| 微博| 上犹县| 凤翔县| 柳江县| 高雄县| 永济市| 页游| 开阳县| 隆回县| 延寿县| 施秉县| 婺源县| 莱西市| 城口县| 额尔古纳市| 宁化县| 新闻| 望城县| 临颍县| 静宁县| 晋城| 宁阳县| 肇东市| 东明县| 中方县| 栾川县| 循化| 民乐县| 龙门县| 大悟县| 普安县| 屏东县| 江都市| 临高县| 新源县|