关于SQlite的使用

1.关于SQlite你知道多少?
SQlite数据库存储是Android系统提供的数据存储方式之一。
SQlite是专为嵌入式设备设计的一款轻量级的数据库。
SQlite占用资源比较少,在嵌入式的设备中只需要几百kb的内存。
SQlite支持标准的SQL语法,遵循数据库的ACID原则。
SQlite不需要安装,不需要用户的密码就可以使用(所以导致安全系数不是很高)。
2.如何使用SQlite
第一步:创建数据库和数据表。
关于创建数据库和数据表我们有一下几个步骤
新建类SQliteOpenHelper,之后实现构造方法,重写onCreat方法,重写onUpgrade方法,实例化SQliteOpenHelper的子类对象,调用getReadableDatabase方法或者getWritableDatabase方法。
上面的SQliteOpenHelper是数据库的一种辅助类,用来管理数据库的创建和版本,通过继承这个类,实现他的一些方法来对数据库进行一些操作。
SQliteOpenHelper是一个抽象类子类需要重写onCreat方法和onUpgrade方法并且添加一个构造方法
对于SQliteOpenHelper的构造方法有以下两步骤需要注意
1.父类中未提供默认构造方法,必须显示调用父类的构造犯法。
2.需要传递创建的数据库的名称以及数据库版本号。

ublic class DBHelper extends SQLiteOpenHelper {
    private String createSQL = "create table student("
            + "id integer primary key  autoincrement not null ,"
            + "name text not null,"
            + "age integer not null ,"
            + "gender varchar(2) not null)";

    /**
     *
     * @param context
     * @param name 数据库名字
     * @param factory 数据库进行查询的时候会返回一个cursor,这个cursor就是在上面的factory中产生的。
    如果有需求,可以自定义factory,这样返回的cursor就会符合自己的需求!
     * @param version 数据库版本号
     */
    //建表语气
    public DBHelper(Context context, String name, SQLiteDatabase.CursorFactory factory, int version) {
        super(context, name, factory, version);
    }

    @Override
    public void onCreate(SQLiteDatabase db) {
        db.execSQL(createSQL);
    }    @Override
    public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {

    }
}

我们也要知道一些常用的数据基本类型

文本型                        text
整形                          integer
浮点型                        real
字符型                        varchar
可变字符型                    nvarchar

题外话关于创建数据库的代码一定要非常熟练因为电脑不会给你提示导致你自己不小心打错了那么数据库是显示出来的所以代码一定要非常的熟悉。并且自己还要非常的仔细,不要因为自己的一个小小的标点符号而导致代码运行不出来那就非常的可惜。

protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
bindID();
dbhelper = new DBHelper(this, “demodb”, null, 1);
}

private void bindID() {
    addBtn = (Button) findViewById(R.id.addBtn);
    deleteBtn = (Button) findViewById(R.id.deleteBtn);
    modifyBtn = (Button) findViewById(R.id.modifyBtn);
    showBtn = (Button) findViewById(R.id.showBtn);
    nameEdit = (EditText) findViewById(R.id.nameEdit);
    changeET = findViewById(R.id.change_name);

    addBtn.setOnClickListener(this);
    deleteBtn.setOnClickListener(this);
    modifyBtn.setOnClickListener(this);
    showBtn.setOnClickListener(this);
}

@Override
public void onClick(View v) {
    switch (v.getId()) {
        case R.id.addBtn:
            SQLiteDatabase sqLiteDatabase = dbhelper.getWritableDatabase();
            //获得SQLiteDatabase对象,读写模式

            //ContentValues类似HashMap,区别是ContentValues只能存简单数据类型,不能存对象
            ContentValues values = new ContentValues();
            values.put("name", nameEdit.getText().toString());

            //执行插入操作
            sqLiteDatabase.insert("student", null, values);

            Toast.makeText(this, "插入成功", Toast.LENGTH_SHORT).show();
            break;
要注意添加到数据库里面的表的名字要一致不然就添加不了


 第三步:修改数据。

case R.id.modifyBtn:
String name = nameEdit.getText().toString();
String NewName = changeET.getText().toString();
SQLiteDatabase sqLiteDatabase2 = dbhelper.getWritableDatabase();

            ContentValues values1 = new ContentValues();

            values1.put("name", NewName);
            //第二个参数是修改的字段及修改的值(已经存放到ContentValues中)
            //第三个参数是WHERE语句
            //第四个参数是WHERE语句中占位符的填充值
            //如果第三四个参数为null,那就将每条记录都改掉
            sqLiteDatabase2.update("student", values1, "name=?", new String[]{name});

            break;
        default:
            break;

第四步:删除数据。

删除数据也一定要至于删除哪一个里面的数据,而且删除完了之后会报错说没有一个数据不要担心只要之后还添加数据进去之后就可以运行出来
case R.id.deleteBtn:

            SQLiteDatabase sqLiteDatabase3 = dbhelper.getWritableDatabase();
            String name1 = nameEdit.getText().toString();
            //第二个参数是WHERE语句(即执行条件,删除哪条数据)
            //第三个参数是WHERE语句中占位符(即"?"号)的填充值
            sqLiteDatabase3.delete("student", "name=?", new String[]{name1});
            Toast.makeText(this, "删除成功", Toast.LENGTH_SHORT).show();
            break;

以上就是SQlite的使用步骤

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值