SQLiteOpenHelper数据库

安卓Day09


SQLiteOpenHelper 数据库的帮助类 --> 代码实现步骤

定义一个类 继承SQLiteOpenHelper
重写构造方法 :提供数据库的基本信息 : 上下文对象,数据库名称,Null,数据库的版本号
重写父类的方法onCreate() 和onUpgrade()

Java代码
import android.content.Context;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteOpenHelper;

public class MySQLite extends SQLiteOpenHelper {
private Context context;
private String name;
private SQLiteDatabase.CursorFactory factory;
private int version;

/***
 *
 * @param context 上下文
 * @param name 数据库名
 * @param factory
 * @param version 版本号
 */
public MySQLite(Context context, String name, SQLiteDatabase.CursorFactory factory, int version) {
    super(context, name, factory, version);
    this.context = context;
    this.name = name;
    this.factory = factory;
    this.version = version;
}

//当传进来的数据库名没找到时 创建该数据库 并执行该方法
@Override
public void onCreate(SQLiteDatabase sqLiteDatabase) {
    //随便创建一张表
    String sql = "create table user(_id integer primary key autoincrement,Name varchar(20),Age integer)";
    sqLiteDatabase.execSQL(sql);
}

//更新版本时执行
@Override
public void onUpgrade(SQLiteDatabase sqLiteDatabase, int i, int i1) {

}

}

封装好的方法
private long addData(){
MySQLite kangxiaobo = new MySQLite(this, “kangxiaobo”, null, 1);
//获得数据库的操作类
SQLiteDatabase database = kangxiaobo.getWritableDatabase();
//数据库的数据格式
ContentValues values = new ContentValues();
//添加数据
values.put(“Name”,“康小博”);
values.put(“Age”,“22”);
/***
* @param table 表名
* @param values 数据
* @return 该表中数据的数量
* insert() 插入数据
* update() 修改数据
* delete() 删除数据
* query() 查询数据
*/
return database.insert(“user”, null, values);
}

执行SQL语句
private void addData() {
MySQLite kangxiaobo = new MySQLite(this, “kangxiaobo”, null, 1);
//获得数据库的操作类
SQLiteDatabase database = kangxiaobo.getWritableDatabase();
database.execSQL(“insert into user values(null,‘康小博’,22)”);
}

query()查找
private void queryData() {
MySQLite kangxiaobo = new MySQLite(this, “kangxiaobo”, null, 1);
//获得数据库的操作类
SQLiteDatabase database = kangxiaobo.getWritableDatabase();
/***
* 执行SQL语句
* @param table 要查询的表名
* @param columns 需要查询的字段
* @param selection 查询的条件
* @param selectionArgs 查询条件对应的内容
* @param groupBy 分组
* @param having 分组的过滤条件
* @param orderBy 排序
* @param limit 查询显示的条数
* @return 游标
*/
Cursor query = database.query(“user”, null, null, null, null, null, null);
//循环获取查询的值
while (query.moveToNext()){
query.getColumnIndex("_id");
String name = query.getString(query.getColumnIndex(“Name”));
int age = query.getInt(query.getColumnIndex(“Age”));
text.setText(text.getText()+"\n"+name+age);
}

}

rawQuery()查找
private void rawQuery(){
MySQLite kangxiaobo = new MySQLite(this, “kangxiaobo”, null, 1);
//获得数据库的操作类
SQLiteDatabase database = kangxiaobo.getWritableDatabase();
String sql = “select * from user where name=?”;
/***
* @param sql sql语句
* @selectionArgs sql中?对应的参数对应的参数
* @return 游标
*/
Cursor cursor = database.rawQuery(sql, new String[]{“康小博”});
while (cursor.moveToNext()){
String name = cursor.getString(cursor.getColumnIndex(“Name”));
int age = cursor.getInt(cursor.getColumnIndex(“Age”));
}
}

作者:康小博
链接:https://www.jianshu.com/p/03212b1eb6ef
来源:简书
简书著作权归作者所有,任何形式的转载都请联系作者获得授权并注明出处。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值