Android数据库sqlite的使用

2019-03-19  本文已影响0人  XINHAO_HAN

Android的sqlite使用

我们先创建一个数据库以供使用


public class SqlOther extends SQLiteOpenHelper {

    public SqlOther(Context context) {
        super(context, "xinhao", null, 1);//标注1
    }

    @Override
    public void onCreate(SQLiteDatabase db) {

        db.execSQL("create table xinhao(name varchar(20),value varchar(10))");//标注2

    }

    @Override
    public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
          //这块是升级数据库所需要填写的一些东西,一般用不到
    }
}

标注1

super(context, "xinhao", null, 1);

这块显示的是

super(上下文, 数据库名称, 工厂指针(一般默认为null,如果你有更好的,可自己写), 版本); 

标注2

db.execSQL("create table xinhao(name varchar(20),value varchar(10))")

创建sql语句为下:create table 表明(第一个键值名称 varchar(20),第二个键值名称varchar(10))
比如 我现在有4个数据或者更多
String name;
String age;
String sex;
String other;

create table xinhao(
                                  name varchar(20),
                                  age int(20),   //其实后边标示的长度是没有用的,一般移动端资源比较紧张,所以这就是sqlite轻量标准之一
                                  sex varchar(20),
                                  other varchar(20)
                              ) 

这块给你一个转换,比如说 sqlOther 这个变量会莫名其妙的出来

image.png

这个是我新建的一个类,然后我们在创建一个类

image.png

这个变量就是这样出来的

插入一个数据

 //存入
    public static void saveData(String name, String value) {
        ContentValues contentValues = new ContentValues();
        contentValues.put(TABLE_NAME, name);
        contentValues.put(TABLE_DATA, value);
        SQLiteDatabase writableDatabase = sqlOther.getWritableDatabase();
        writableDatabase.insert(TABLE/**表明**/, null, contentValues);
        writableDatabase.close();
    }

读取

 //读取
    public static String getData(String name) {
        SQLiteDatabase readableDatabase = sqlOther.getReadableDatabase();
        Cursor query = readableDatabase.query(TABLE, new String[]{TABLE_NAME,TABLE_DATA}, "name=?", new String[]{name}, null, null, null);
        String string = null;
        while (query.moveToNext()) {
            string = query.getString(query.getColumnIndex(TABLE_DATA));


        }
        query.close();
        readableDatabase.close();
        return string;
    }

这一行 readableDatabase.query(TABLE, new String[]{TABLE_NAME,TABLE_DATA}, "name=?", new String[]{name}, null, null, null);

你可能有点奔溃,我曹,这么多....可能你会像公式一样记住,但是不理解这个到底是个啥?

image.png

这行总共7个参数

第一个:表明

第二个:需要查找的数据的键值对名称(如下图中表项:admin_ID,admin_Name,admin_Password,想找哪个填那个)

image.png

相当于:

select * FROM table xinhao where admin_ID=?

select * FROM table xinhao where admin_Name=?

select * FROM table xinhao where admin_Password=?

第三个:后边的语句admin_Password=? admin_ID=? admin_Name=?

第四个:填入数值:admin_Password=1314

删除所有数据

 //删除所有数据
    public static void deleteData() {

        SQLiteDatabase writableDatabase = sqlOther.getWritableDatabase();
        writableDatabase.delete(TABLE, null, null);
        writableDatabase.close();
    }

删除指定数据

 //删除指定数据
    public static void deleteDataName(String name) {
        SQLiteDatabase writableDatabase = sqlOther.getWritableDatabase();
        writableDatabase.delete(TABLE, "name=?", new String[]{name});
        writableDatabase.close();

    }
上一篇 下一篇

猜你喜欢

热点阅读