Android SQLite数据库使用,了解一下

SQLite简介

  • 轻量级 : SQLite数据库是一个轻量级的数据库, 适用于少量数据的CURD;
  • 文件本质 : SQLite数据库支持大部分SQL语法, 允许使用SQL语句操作数据库, 其本质是一个文件, 不需要安装启动;
  • 数据读写 : SQLite数据库打开只是打开了一个文件的读写流, 如果有大数据量读写, 需要高并发存储, 那么就不应该使用SQLite;

在安卓里面数据库怎么用呢,简单来说可用分为以下三步:

1、新建一个数据库帮助类,继承自SQLiteOpenHelper,复写onCreate() 和 onUpgrade()
2、新建一个数据里操作类(dao类),利用 数据库帮助类 得到数据库的实例,然后在dao类里面编写 增删改查 的方法,不过我没有写dao类,增删查方法全写在数据库帮助类里面了
3、在Activity里面实例化数据库操作类(dao类),调用对应的 增删查改方法。
(对数据进行的操作也就无非四种,即CRUD。其中C代表添加(Create),R代表查询(Retrieve),U代表更新(Update),D代表删除(Delete)。有人叫增删改查,有人叫增删查改)

详细说下数据库帮助类各个方法的用处:

1.name :数据库名 ,CursorFactory:游标工厂类 ,version:当前数据的版本

    public SqlUtils(Context context, String name, CursorFactory factory,
            int version) {
        super(context, name, factory, version);
    }

2.SQLiteDatabase :安卓中的SQLite数据库,创建数据库中的数据表单的方法

@Override
    public void onCreate(SQLiteDatabase db) {
        db.execSQL("create table zk(_id integer primary key,name varchar);");
    }

3.增加数据,一般情况下两个都可以拿到数据库对象 db,当数据库中的数据超出数据存储的大小的时候:
getWritableDatabase:返回null
getReadableDatabase:返回一个只读对象

   public void insertSQL(String name){
        //SQLiteDatabase db1=getReadableDatabase();
        SQLiteDatabase db=getWritableDatabase();
        db.execSQL("insert into zk (name) values ('"+name+"')");
        db.close();

    }

4.删除数据

public void deleteSQL(int ID){
        SQLiteDatabase db=getWritableDatabase();
        db.execSQL("delete from student where _id="+ID);
        db.close();
    }

5.更新数据, oldVersion 老版本号,newVersion:新的版本更新

@Override
    public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
        if (newVersion>oldVersion){
            updateSQL();
        }
    }
  public void updateSQL() {
        SQLiteDatabase db=getWritableDatabase();
        db.execSQL("update zk set name='更改后的值' where _id=1");
        db.close();
    }    

6.查找数据

    public List<Map<String,String>> getSQL(){
        SQLiteDatabase db=getWritableDatabase();
        List<Map<String,String>> list=null;
        list=new ArrayList<>();
        Cursor cursor = db.rawQuery("select *from zk", null);
        while(cursor.moveToNext()){
            Map<String,String> map=new HashMap<>();
            map.put("ID",""+cursor.getInt(cursor.getColumnIndex("_id")));
            map.put("name",""+cursor.getString(cursor.getColumnIndex("name")));
                    list.add(map);
        }
        return  list;
    }

7.直接调用就可以实现了

public class MainActivity extends AppCompatActivity implements View.OnClickListener {

    private Button add,remove,set,get;
    private SqlUtils mSqlUtils;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        mSqlUtils=new SqlUtils(this,"测试",null,1);
        initView();

    }

    private void initView() {
        add = findViewById(R.id.add);
        remove = findViewById(R.id.remove);
        set = findViewById(R.id.set);
        get = findViewById(R.id.get);
        add.setOnClickListener(this);
        remove.setOnClickListener(this);
        set.setOnClickListener(this);
        get.setOnClickListener(this);

    }

    @Override
    public void onClick(View v) {
        switch (v.getId()){
            case R.id.add:
                mSqlUtils.insertSQL("BUG");
                break;
            case R.id.remove:
                mSqlUtils.removeSQL(4);
                break;

            case R.id.set:
            mSqlUtils.updateSQL();

                break;
            case R.id.get:
                List<Map<String, String>> sql = mSqlUtils.getSQL();
                for (Map<String,String> map:  sql) {
                    String id = map.get("ID");
                    String name = map.get("name");
                    Log.e("ZHOUKANG", ""+id);
                    Log.e("ZHOUKANG", ""+name);
                }
                break;
        }
    }
}

效果图:
这里写图片描述
好了就这样了很简单的一个小demo

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值