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();
}