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

聯系我們 - 廣告服務 - 聯系電話:
您的當前位置: > 關注 > > 正文

動態焦點:安卓開發Android studio學習筆記 利用SQLiteDatabase操作數據表

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


(資料圖片僅供參考)

Android studio學習筆記

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

第一步:配置strings.xml

利用SQLiteDatabase操作數據表創建或打開數據庫創建表添加表記錄更新表記錄顯示全部表記錄刪除全部表記錄刪除表刪除數據庫

第二步:配置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"; // 數據庫名    private final String TABLE_NAME = "student"; // 表名    private final int MODE = Context.MODE_PRIVATE; // 訪問模式    private SQLiteDatabase db; // SQLite數據庫    private int id; // 學號    @Override    protected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main);    }    /**     * 創建或打開數據庫     *     * @param view     */    public void doCreateOrOpenDB(View view) {// 判斷數據庫是否存在        if (databaseList().length == 0) {// 創建數據庫            db = openOrCreateDatabase(DB_NAME, MODE, null);            // 提示用戶數據庫創建成功            Toast.makeText(this, "恭喜,數據庫【" + DB_NAME + "】創建成功!", Toast.LENGTH_LONG).show();        } else {// 打開數據庫            db = openOrCreateDatabase(DB_NAME, MODE, null);            // 提示用戶數據庫打開成功            Toast.makeText(this, "恭喜,數據庫【" + DB_NAME + "】打開成功!", Toast.LENGTH_LONG).show();        }    }    /**     * 創建表     *     * @param view     */    public void doCreateTable(View view) {// 判斷數據庫對象是否為空        if (db == null) {// 判斷數據庫是否存在            if (databaseList().length == 0) {Toast.makeText(this, "請創建數據庫【" + DB_NAME + "】。", Toast.LENGTH_LONG).show();            } else {Toast.makeText(this, "請打開數據庫【" + DB_NAME + "】。", Toast.LENGTH_LONG).show();            }        } else {// 判斷表是否存在            if (isTableExisted(TABLE_NAME)) {// 彈出吐司提示用戶表已存在                Toast.makeText(this, "表【" + TABLE_NAME + "】已經存在!", Toast.LENGTH_LONG).show();            } else {try {// 定義SQL字符串                    String strSQL = "CREATE TABLE " + TABLE_NAME + "(id integer, name text, gender text)";                    // 執行SQL語句                    db.execSQL(strSQL);                    // 提示用戶創建表成功                    Toast.makeText(this, "創建表成功!", Toast.LENGTH_LONG).show();                } catch (SQLException e) {// 提示用戶創建表失敗                    Toast.makeText(this, "創建表失敗!", 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 = ?";        // 執行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) {// 判斷數據庫對象是否為空        if (db == null) {// 判斷數據庫是否存在            if (databaseList().length == 0) {Toast.makeText(this, "請創建數據庫【" + DB_NAME + "】。", Toast.LENGTH_LONG).show();            } else {Toast.makeText(this, "請打開數據庫【" + DB_NAME + "】。", Toast.LENGTH_LONG).show();            }        } else {// 判斷表是否存在            if (isTableExisted(TABLE_NAME)) {// 獲取新記錄的學號                id = getNewId(TABLE_NAME);                // 創建內容值對象                ContentValues values = new ContentValues();                // 以鍵值對方式添加字段數據                values.put("id", id);                values.put("name", "學生" + id);                values.put("gender", id % 2 == 1 ? "男" : "女");                // 將數據插入表中                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 {// 提示用戶先創建表                Toast.makeText(this, "表【" + TABLE_NAME + "】不存在,請先創建!", Toast.LENGTH_LONG).show();            }        }    }    /**     * 獲取新記錄的學號     *     * @param tableName     * @return     */    private int getNewId(String tableName) {// 判斷表是否存在        if (isTableExisted(tableName)) {// 查詢全部表記錄,返回游標            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) {// 判斷數據庫對象是否為空        if (db == null) {// 判斷數據庫是否存在            if (databaseList().length == 0) {Toast.makeText(this, "請創建數據庫【" + DB_NAME + "】。", Toast.LENGTH_LONG).show();            } else {Toast.makeText(this, "請打開數據庫【" + 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 {// 執行SQL,返回更新表記錄數                        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 {// 提示用戶先創建表                Toast.makeText(this, "表【" + TABLE_NAME + "】不存在,請先創建!", Toast.LENGTH_LONG).show();            }        }    }    /**     * 返回表記錄數     *     * @param tableName     * @return 表記錄數     */    private int getRecordCount(String tableName) {// 定義SQL字符串        String strSQL = "SELECT * FROM " + tableName;        // 執行SQL,返回游標        Cursor cursor = db.rawQuery(strSQL, null);        // 返回記錄數        return cursor.getCount();    }    /**     * 顯示全部表記錄     *     * @param view     */    public void doDisplayAllRecords(View view) {// 判斷數據庫對象是否為空        if (db == null) {// 判斷數據庫是否存在            if (databaseList().length == 0) {Toast.makeText(this, "請創建數據庫【" + DB_NAME + "】。", Toast.LENGTH_LONG).show();            } else {Toast.makeText(this, "請打開數據庫【" + DB_NAME + "】。", Toast.LENGTH_LONG).show();            }        } else {// 判斷表是否存在            if (isTableExisted(TABLE_NAME)) {// 判斷表里是否有記錄                if (getRecordCount(TABLE_NAME) > 0) {// 定義SQL字符串                    String strSQL = "SELECT * FROM " + TABLE_NAME;                    // 執行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 {// 提示用戶先創建表                Toast.makeText(this, "表【" + TABLE_NAME + "】不存在,請先創建!", Toast.LENGTH_LONG).show();            }        }    }    /**     * 刪除全部表記錄(三個層面的判斷)     *     * @param view     */    public void doDeleteAllRecords(View view) {// 判斷數據庫對象是否為空        if (db == null) {// 判斷數據庫是否存在            if (databaseList().length == 0) {Toast.makeText(this, "請創建數據庫【" + DB_NAME + "】。", Toast.LENGTH_LONG).show();            } else {Toast.makeText(this, "請打開數據庫【" + DB_NAME + "】。", Toast.LENGTH_LONG).show();            }        } else {// 判斷表是否存在            if (isTableExisted(TABLE_NAME)) {// 判斷是否有表記錄                if (getRecordCount(TABLE_NAME) > 0) {// 定義SQL字符串                    String strSQL = "DELETE FROM " + TABLE_NAME;                    try {// 執行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 {// 提示用戶先創建表                Toast.makeText(this, "表【" + TABLE_NAME + "】不存在,請先創建!", Toast.LENGTH_LONG).show();            }        }    }    /**     * 刪除表     *     * @param view     */    public void doDeleteTable(View view) {// 判斷數據庫對象是否為空        if (db == null) {// 判斷數據庫是否存在            if (databaseList().length == 0) {Toast.makeText(this, "請創建數據庫【" + DB_NAME + "】。", Toast.LENGTH_LONG).show();            } else {Toast.makeText(this, "請打開數據庫【" + DB_NAME + "】。", Toast.LENGTH_LONG).show();            }        } else {// 判斷表是否存在            if (isTableExisted(TABLE_NAME)) {// 定義SQL字符串                String strSQL = "DROP TABLE " + TABLE_NAME;                try {// 執行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, "表【" + TABLE_NAME + "】不存在,請先創建!", Toast.LENGTH_LONG).show();            }        }    }    /**     * 刪除數據庫     *     * @param view     */    public void doDeleteDB(View view) {// 判斷數據庫是否存在        if (databaseList().length == 0) {// 提示用戶沒有數據庫            Toast.makeText(this, "沒有數據庫可刪除!", Toast.LENGTH_LONG).show();        } else {// 判斷數據庫刪除是否成功            if (deleteDatabase(DB_NAME)) {// 提示用戶刪除成功                Toast.makeText(this, "數據庫【" + DB_NAME + "】刪除成功!", Toast.LENGTH_LONG).show();            } else {// 提示用戶刪除失敗                Toast.makeText(this, "數據庫【" + DB_NAME + "】刪除失敗!", Toast.LENGTH_LONG).show();            }        }    }}第四步:查看代碼運行結果截圖具體功能就不一 一展示了 較為繁瑣

責任編輯:

標簽:

相關推薦:

精彩放送:

新聞聚焦
Top 一区二区三区电影_国产伦精品一区二区三区视频免费_亚洲欧美国产精品va在线观看_国产精品一二三四
亚洲视频一二| 亚洲国产老妈| 在线欧美日韩国产| 久热成人在线视频| 日韩一区二区免费看| 国产精品mm| 香蕉成人啪国产精品视频综合网| 国产精品午夜在线观看| 久久精品国产99国产精品| 在线日韩欧美视频| 欧美日韩第一区| 亚洲欧美日韩精品综合在线观看| 国产欧美日韩一级| 久久综合伊人77777麻豆| 亚洲精品美女久久7777777| 国产精品黄色在线观看| 欧美一区二区三区精品| 亚洲激情视频在线| 国产精品免费一区二区三区观看 | 欧美日韩一区二区三区高清| 亚洲欧美在线观看| 亚洲精品久久久久中文字幕欢迎你 | 在线观看亚洲| 欧美视频一二三区| 久久人91精品久久久久久不卡| 亚洲人成网站色ww在线| 国产精品外国| 欧美性理论片在线观看片免费| 中国女人久久久| 国产一区二区精品丝袜| 欧美日韩美女一区二区| 久久免费视频网站| 午夜精品久久久久久久久久久久久| 亚洲第一成人在线| 国产曰批免费观看久久久| 欧美亚韩一区| 欧美日韩国语| 欧美黄色免费网站| 久久久久网站| 欧美在线视频a| 亚洲欧美视频| 亚洲综合日本| 亚洲免费小视频| 99热免费精品| 日韩网站免费观看| 亚洲精品免费在线播放| 在线成人性视频| 国内外成人免费激情在线视频| 国产精品乱子久久久久| 欧美性大战xxxxx久久久| 欧美激情在线狂野欧美精品| 免费美女久久99| 久久久精品2019中文字幕神马| 欧美亚洲一区二区在线| 亚洲欧美在线一区| 午夜亚洲视频| 久久狠狠久久综合桃花| 欧美一区二区三区电影在线观看| 亚洲综合99| 亚洲一区二区三区欧美| 亚洲宅男天堂在线观看无病毒| 一本久久综合亚洲鲁鲁五月天| 日韩视频在线观看国产| 在线视频精品一区| 亚洲图片在区色| 亚洲一区二区三区在线播放| 亚洲视频在线观看免费| 亚洲一区中文字幕在线观看| 亚洲资源av| 欧美主播一区二区三区美女 久久精品人| 亚洲欧美日韩成人| 久久精品国产99| 欧美成人精品一区二区三区| 欧美人妖另类| 国产精品毛片| 一区二区视频免费在线观看 | 99视频在线观看一区三区| 亚洲精品一区二区在线观看| 亚洲免费大片| 亚洲女人天堂成人av在线| 欧美一级一区| 蜜桃av一区| 欧美日精品一区视频| 国产精品系列在线播放| 伊人激情综合| 一区二区三区www| 欧美一区在线看| 久久亚洲精品一区| 国产女主播视频一区二区| 国模精品娜娜一二三区| 99re6热在线精品视频播放速度| 亚洲一区欧美一区| 老牛嫩草一区二区三区日本| 欧美日韩免费观看中文| 国产午夜精品视频| 日韩视频免费观看| 久久精品欧美日韩| 欧美色图五月天| 在线播放国产一区中文字幕剧情欧美| 亚洲精品视频在线看| 香蕉成人伊视频在线观看 | 久久久亚洲一区| 欧美日韩国产综合在线| 国产亚洲女人久久久久毛片| 亚洲美女黄色| 久久久久久久久久久久久9999| 欧美日韩免费| 亚洲国产专区校园欧美| 久久精品2019中文字幕| 欧美视频第二页| 亚洲激情图片小说视频| 久久躁日日躁aaaaxxxx| 国产色婷婷国产综合在线理论片a| 亚洲激情一区二区| 久久综合图片| 黄色成人av网| 欧美在线免费视屏| 国产精品一区视频网站| 一区二区三区偷拍| 欧美精品一区二区三区蜜桃 | 暖暖成人免费视频| 国产精品专区h在线观看| 99re66热这里只有精品4| 久久久另类综合| 国内外成人在线| 欧美影院在线播放| 国产老女人精品毛片久久| 亚洲在线观看免费| 国产精品videosex极品| 国产精品三区www17con| 亚洲欧美在线磁力| 亚洲男人的天堂在线| 亚洲天堂av高清| 最新日韩在线| 日韩一区二区福利| 欧美精品一区在线观看| 久久精品国产久精国产爱| 亚洲黄色片网站| 麻豆国产精品va在线观看不卡 | 欧美母乳在线| 欧美岛国激情| 中文日韩在线| 精品成人一区二区| 一本色道久久综合亚洲精品按摩| 国产视频在线观看一区二区三区| 亚欧成人精品| 亚洲美女一区| 国产亚洲一级高清| 国产主播精品在线| 欧美日韩免费观看一区| 久久精品视频免费播放| 亚洲尤物在线| 99精品国产福利在线观看免费| 最新国产成人av网站网址麻豆| 国产欧美一区二区三区视频| 亚洲第一主播视频| 亚洲电影免费观看高清完整版 | 久久激情五月丁香伊人| 欧美尤物一区| 国产精品成人午夜| 一区二区三区国产精华| 欧美日本亚洲韩国国产| 亚洲精品在线三区| 美女精品网站| 亚洲国产成人av| 麻豆久久婷婷| 亚洲日本无吗高清不卡| 欧美精品一区二区高清在线观看| 欧美日韩视频| 亚洲视频免费在线观看| 欧美aⅴ99久久黑人专区| 欧美黄色网络| 国产精品美女视频网站| 亚洲专区一区| 久久综合图片| 欧美性久久久| 亚洲人成网站777色婷婷| 久久色在线播放| 在线中文字幕日韩| 国产欧美日韩亚洲一区二区三区| 欧美日韩性生活视频| 亚洲第一在线| 牛牛国产精品| 一本一本久久a久久精品综合妖精| 久久免费国产精品| 黄色成人免费网站| 久久久噜噜噜久久| 亚洲国产精品一区二区第一页 | 亚洲第一黄网| 国产女精品视频网站免费| 久久久久久自在自线| 国内精品久久久久久久97牛牛| 性欧美videos另类喷潮| 亚洲高清中文字幕| 国产精品豆花视频| 久久精品一级爱片| 99在线|亚洲一区二区| 亚洲高清自拍| 国产精品剧情在线亚洲| 免费一级欧美片在线观看|