Android SQLite数据库使用

简单写一个Android SQLite,便于后续理解
SqLite帮助类 用于操作数据库,创建MyDatabaseHelper 继承SQLiteOpenHelper 用于重写内部方法。

public class MyDatabaseHelper extends SQLiteOpenHelper {
public MyDatabaseHelper(Context context,  String name, SQLiteDatabase.CursorFactory factory, int version) {
        super(context, name, factory, version);
        mContext=context;
    }

举例创建Student表。添加id,name,number列

//创建表 name为列 text为文本
//   表名 Student
    public static final String CREAT_Student="create table Student("
            +"id integer primary key autoincrement,"
            +"name text,"
            +"number text)";

重写onCreate(),外部启动后调用onCreate(),用于建表“db.execSQL(CREAT_Student);”第一次进入会创建表,当检测到已存在此表,则不会重新创建。

   @Override
    public void onCreate(SQLiteDatabase db) {
//        建表
        db.execSQL(CREAT_Student);
        Toast.makeText(mContext,"Create succeeded", Toast.LENGTH_SHORT);
    }
    @Override
    public void onUpgrade(SQLiteDatabase sqLiteDatabase, int i, int i1) {

    }

类初始化数据库

//    StudentStore.db 数据库名
    public void initSql(Context context) {
        LogUtils.d(TAG, "initSql");
        databaseHelper = new MyDatabaseHelper(context, "StudentStore.db", null, 1);
    }

创建或打开现有数据库(如果已经有就会打开名为"StudentStore数据库) 具有返回值,返回值可以操作数据库。

    public void createSql() {
        LogUtils.d(TAG, "createSql");
        databaseHelper.getWritableDatabase();
    }

插入数据方法

    public void addDataSql() {
        LogUtils.d(TAG, "addDataSql");
//		获取db对象用于操作数据库
        SQLiteDatabase db = databaseHelper.getWritableDatabase();
//        db.beginTransaction();
        ContentValues values = new ContentValues();
        values.put("name", "Zhangsan");
        values.put("number", "20202002");
        db.insert("Student", null, values);
//        插入第二条数据需要clear values
        values.clear();
        values.put("name", "Lisi");
        values.put("number", "233782738723");
        db.insert("Student", null, values);
//        db.endTransaction();
    }

查询数据,主要用过cursor查询

 //    查询数据
    public void queryDataSql() {
        LogUtils.d(TAG, "queryDataSql");
        SQLiteDatabase db = databaseHelper.getWritableDatabase();
//        调用query返回值为cursor  cursor表示获取的全部结果
//        table:   查询表名   相当于SQL---- from table_name
//        columns: 查询列名   相当于SQL---- select column1  备注:参数为数组需要创建数组查询
//        selection:  查询where约束条件     相当于SQL的where column =value
//        selectionArgs :为占位符提供具体值  ?
//        groupBy  指定需要group by的列     相当于SQL group by column
//        having 对group by后的结果进行进一步的约束 having column =values
//        orderBy 指定查询结果的排序方式 order by column1, column2
//        String[] columns =new String[]{"name"};
        Cursor cursor = db.query("Student"
//                ,columns
//                , "name ="+"'Zhangsan'"+" And number =?"
//                , new String[]{"233"}
                , null
                , null
                , null
                , null
                , null
                , null);
        if (cursor.moveToFirst()) {//将指针移动到第一行  之后一行取数据,从头开始获取数据
            do {
                String name = cursor.getString(cursor.getColumnIndex("name"));
                String number = cursor.getString(cursor.getColumnIndex("number"));
                LogUtils.d(TAG, "queryDataSql name =" + name + " number =" + number);
                LogUtils.d(TAG, "queryDataSql -----------------------------------");
            } while (cursor.moveToNext());
        }
//        用完一定要关闭
        cursor.close();
    }

更新列表数据
    public void updateDataSql() {
        LogUtils.d(TAG, "updateDataSql");
        SQLiteDatabase db = databaseHelper.getWritableDatabase();
        ContentValues values = new ContentValues();
        values.put("name", "WangLaoWu");
        values.put("number", "20202002");
//        values放到updaye中用于更新
        db.update("Student", values, "name =?", new String[]{"Zhangsan"});
    }

删除数据数据

    public void deleteDataSql() {
        LogUtils.d(TAG, "deleteDataSql");
        SQLiteDatabase db = databaseHelper.getWritableDatabase();
        db.delete("Student", "name =?", new String[]{"Zhangsan"});
    }

上面为完整的简单SQLite使用

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/weixin_46035626/article/details/129497864
————————————————
版权声明:本文为CSDN博主「啥也不是嘛」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/weixin_46035626/article/details/129497864

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值