Android五大存储---SQLite数据库

数据库和java中一样都是增、删、改、查
在布局中写5个button,分别是创建table、增、删、改、查

    首先创建一个table,写一个openhelper继承SQLiteOpenHelper, 复写的oncreate方法中创建table,在创建table的点击事件中调用构造器创建table,并得到database
    public TestSQLopenHelper(Context context, String name, SQLiteDatabase.CursorFactory factory, int version) {
        super(context, name, factory, version);
    }
    public TestSQLopenHelper(Context context,String name){
        this(context,name,null,1);//再写一个双参构造器,把后面两个参数直接初始化
    }
    @Override
    public void onCreate(SQLiteDatabase db) {//在openhelper中创建table,database的exeSQL方法
        db.execSQL("create table if not exists user(id integer primary key autoincrement,name varchar(20),password varchar(20))");
    }
    @Override
    public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
    }
}


private void create() {
    SQLiteOpenHelper helper=new TestSQLopenHelper(getApplicationContext(),"MYSQL_test");
db=helper.getWritableDatabase();//得到database
    Toast.makeText(getApplicationContext(), "创建了数据库", Toast.LENGTH_SHORT).show();
}

增加,增按钮的点击事件下,调用database的insert方法

  • insert(String table,String nullColumnHack,ContentValues values)
private void Insert() {
    ContentValues values=new ContentValues();
    values.put("name","zhangsan");
    values.put("password","12345");
db.insert("user",null,values);
}

查询,查按钮的点击事件下,调用database的rawQuery或者query方法

  • rawQuery(String sql,String[] selectionArgs)
  • query(String table,String columns,String args,String groupBy,String having,String orderBy,String limit)返回值是Cursor,和java中的resultset一样,参看resultset用法
private void select() {
    Cursor cursor= db.rawQuery("select * from user",null);
    cursor.moveToFirst();
while(!cursor.isAfterLast()){
//不是if啊啊啊啊,想着如果不是最后一样很容易打if
String name=cursor.getString(cursor.getColumnIndex("name"));
           String password=cursor.getString(cursor.getColumnIndex("password"));
           Log.d("cursor", "用户名:" + name + "密码:" + password);
           cursor.moveToNext();
       }
query:
case R.id.button_select:
   Cursor cursor= db.query("user",null,null,null,null,null,"id DESC","1 , 3");//列表名、两个null代表查找所有(详见api),having,groupBy,limit:1 , 3是偏移量和查询数量
    cursor.moveToFirst();
    while(!cursor.isAfterLast()){
        String name=cursor.getString(cursor.getColumnIndex("name"));
        String password=cursor.getString(cursor.getColumnIndex("password"));
        Log.d("cursor", "用户名:" + name + "密码:" + password);
        cursor.moveToNext();
    }

删除,调用database的delete方法

case R.id.button_delete:
db.delete("user","name=?",new String[]{"zhangsan"});//?代表zhangsan
Toast.makeText(getApplicationContext(), "删除了数据", Toast.LENGTH_SHORT).show();
break;

修改,用update拼数据库的操作码

case R.id.button_update:
    ContentValues values=new ContentValues();
    values.put("password","adbc");
db.update("user", values, "name=?", new String[]{"zhangsan"});//四个参数,table名,contentvalues,修改标志名,修改的值
Toast.makeText(getApplicationContext(), "修改了数据", Toast.LENGTH_SHORT).show();
break;
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值