您的位置:首页 > 数据 >
安卓开发Android studio学习笔记 利用SQLiteDatabase操作数据表 最新资讯
来源:CSDN 2023-02-15 09:18:08


(资料图)

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();            }        }    }}第四步:查看代码运行结果截图具体功能就不一 一展示了 较为繁琐

关键词:
相关文章
华阳集团部署2023年煤炭生产建设工作

华阳集团部署2023年煤炭生产建设工作

  为贯彻落实职代会精神,2月10日,华阳集团召开2023年煤炭生产建设工作会,回顾总结2022年工作,安排部署2023年重点工作。华阳集团常务副总更多

2023-02-14 14:58:01
世界快看点丨解读:2023年1月份CPI有所上涨 PPI继续下降

世界快看点丨解读:2023年1月份CPI有所上涨 PPI

  国家统计局今天发布了2023年1月份全国CPI(居民消费价格指数)和PPI(工业生产者出厂价格指数)数据。对此,国家统计局城市司首席统计师董更多

2023-02-14 10:59:30
日通关7万吨 策克口岸恢复蒙古国煤炭跨境运输

日通关7万吨 策克口岸恢复蒙古国煤炭跨境运输

  2月12日8时,在策克口岸十进六出运输通道内,一辆辆满载蒙古国进口原煤的车辆从西伯库伦口岸驶入策克口岸查验区,等待中方查验后依次有序更多

2023-02-14 10:14:15
内蒙古:三个盟市原煤产量占全区比重86.7%

内蒙古:三个盟市原煤产量占全区比重86.7%

  内蒙古统计局最新消息:2022年,内蒙古11个产煤盟市规模以上工业企业原煤产量有升有降。  其中,鄂尔多斯市、锡林郭勒盟和呼伦贝尔市原更多

2023-02-14 10:01:49
每日动态!第七批安全生产标准化管理体系一级达标煤矿名单公布

每日动态!第七批安全生产标准化管理体系一级达标

国家矿山安全监察局关于公布安全生产标准化管理体系一级达标煤矿名单(第七批)的通知矿安〔2023〕12号各产煤省、自治区及新疆生产建设兵团煤更多

2023-02-14 10:05:19
焦点观察:山西省煤矿安全生产形势持续稳定向好

焦点观察:山西省煤矿安全生产形势持续稳定向好

  山西省应急管理厅介绍,自2020年4月全省安全生产专项整治三年行动开展以来,全省各级煤矿安全监管部门和煤矿企业在制度完善、秩序规范、模更多

2023-02-14 09:58:47
CCTD:煤市下跌惯性何时打破?

CCTD:煤市下跌惯性何时打破?

  市场情况综述  产地方面,随着供应进一步回归以及沿海价格快速下行,晋陕蒙均出现不同程度下跌,后半周有加速下跌迹象。目前鄂尔多斯、更多

2023-02-14 10:16:47
俄中新铁路桥贾林达-漠河的年货运量可能会达到2000万吨至4000万-每日快播

俄中新铁路桥贾林达-漠河的年货运量可能会达到200

  据俄罗斯远东媒体援引阿穆尔州州长瓦西里·奥尔洛夫的话报道,俄罗斯和中国有必要签署一系列政府间文件,以进一步有效地开展俄中新铁路口更多

2023-02-13 10:01:35
今头条!印尼2023年将出口超5亿吨煤炭

今头条!印尼2023年将出口超5亿吨煤炭

  印尼能源和矿产资源部部长阿里芬·塔利夫(ArifinTasrif)1月30日表示,印尼今年计划生产695亿吨煤炭,出口518亿吨。  阿里芬·塔利夫称更多

2023-02-13 10:00:08
2月第一周福建省煤炭市场价格稳中微跌

2月第一周福建省煤炭市场价格稳中微跌

  根据商务部重要生产资料监测系统监测数据显示,上周(2023年1月30日-2023年2月5日)福建省监测样本企业的煤炭市场价格平均为162767元吨,更多

2023-02-13 10:00:50