android sqlite数据库 修改数据

修改数据也需要懂得使用where多条件语句

  • 条件表达式 =,!=,>,<,>=,<=
  • 多条件 and or , and和or都可以无限连接
/**
     * 方法修改数据库数据
     */
    public void updatePersonData(PersonModel model)
    {
        //条件表达式 =,!=,>,<,>=,<=
        //多条件 and or  and和or都可以无限连接
        //多条件示例 _id>=? and _id<=?
        //多条件示例 _id>=? or _id=? or _id=?

        //将数据添加至ContentValues
        ContentValues values = new ContentValues();
        values.put(VALUE_NAME,model.getName());
        values.put(VALUE_ADDRESS,model.getAddress());
        values.put(VALUE_ISBOY,model.getIsBoy());
        values.put(VALUE_AGE,model.getAge());
        values.put(VALUE_PIC,model.getPic());

        //修改model的数据
       getWritableDatabase().update(TABLE_NAME_PERSON,values,VALUE_ID+"=?",new String[]{""+model.getId()});

        //将 _id>20 的数据全部修改成model  适合重置数据
        getWritableDatabase().update(TABLE_NAME_PERSON,values,VALUE_ID+">?",new String[]{"20"});

        //将 _id>=30 && _id<=40 的数据全部修改成model  适合重置数据
        getWritableDatabase().update(TABLE_NAME_PERSON,values,VALUE_ID+">=? and "+VALUE_ID+"<=?",new String[]{"30","40"});

        //将 _id>=40 || _id=30 || _id=20的 age 修改成18 (需先将model的数据修成成18) 这里and 和 or 的效果时一样的 因为_id是唯一的
        int count = getWritableDatabase().update(TABLE_NAME_PERSON,values,VALUE_ID+">=?"+" or "+VALUE_ID+"=?"+" or "+VALUE_ID+"=?",new String[]{"40","30","20"});

        // count 返回被修改的条数  >0 表示修改成功
        Log.e(TAG, ""+ VALUE_ID+">=? and "+VALUE_ID+"<=?");
        Log.e(TAG, ""+ VALUE_ID+">=?"+" or "+VALUE_ID+"=?"+" or "+VALUE_ID+"=?");

    }
    /**
     * sql修改数据库数据
     */
    public void updatePersonDataSql(PersonModel model)
    {
        //条件表达式 =,!=,>,<,>=,<=
        //多条件 and or  and和or都可以无限连接

        //修改格式 update 表名 set 字段='字段值', 字段='字段值',… where 字段='字段值'
        //多条件示例 update person set name='钢铁侠',isboy='1' where _id='2'
        //多条件示例 update person set name='天地',isboy='1',age='79',address='山东省青岛市开平路53号国棉四厂二宿舍1号楼2单元204户甲',pic='[B@266d768b' where _id>='30' and _id<='40'
        //多条件示例 update person set name='小二',isboy='1',age='18',address='河南南阳市八一路272号特钢公司',pic='[B@17560c26' where _id>='40' or _id='30' or _id='20'


        //修改model的数据
        String update1 = "update "+TABLE_NAME_PERSON+" set "+
                VALUE_NAME+"="+"'"+model.getName()+"',"+
                VALUE_ISBOY+"="+"'"+model.getIsBoy()+"',"+
                VALUE_AGE+"="+"'"+model.getAge()+"',"+
                VALUE_ADDRESS+"="+"'"+model.getAddress()+"',"+
                VALUE_PIC+"="+"'"+model.getPic()+"'" + " where "+
                VALUE_ID +"="+"'"+model.getId()+"'";

        //将 _id>20 的数据全部修改成model  适合重置数据
        String update2 = "update "+TABLE_NAME_PERSON+" set "+
                VALUE_NAME+"="+"'"+model.getName()+"',"+
                VALUE_ISBOY+"="+"'"+model.getIsBoy()+"',"+
                VALUE_AGE+"="+"'"+model.getAge()+"',"+
                VALUE_ADDRESS+"="+"'"+model.getAddress()+"',"+
                VALUE_PIC+"="+"'"+model.getPic()+"'" + " where "+
                VALUE_ID + ">="+"'"+"20"+"'";

        //将 _id>=30 && _id<=40 的数据全部修改成model  适合重置数据
        String update3 = "update "+TABLE_NAME_PERSON+" set "+
                VALUE_NAME+"="+"'"+model.getName()+"',"+
                VALUE_ISBOY+"="+"'"+model.getIsBoy()+"',"+
                VALUE_AGE+"="+"'"+model.getAge()+"',"+
                VALUE_ADDRESS+"="+"'"+model.getAddress()+"',"+
                VALUE_PIC+"="+"'"+model.getPic()+"'" + " where "+
                VALUE_ID + ">="+"'"+"30"+"'"+" and "+
                VALUE_ID + "<="+"'"+"40"+"'";

        //将 _id>=40 || _id=30 || _id=20的 age 修改成18 (需先将model的数据修成成18)
        String update4 = "update "+TABLE_NAME_PERSON+" set "+
                VALUE_NAME+"="+"'"+model.getName()+"',"+
                VALUE_ISBOY+"="+"'"+model.getIsBoy()+"',"+
                VALUE_AGE+"="+"'"+"18"+"',"+
                VALUE_ADDRESS+"="+"'"+model.getAddress()+"',"+
                VALUE_PIC+"="+"'"+model.getPic()+"'" + " where "+
                VALUE_ID + ">="+"'"+"40"+"'"+" or "+
                VALUE_ID + "="+"'"+"30"+"'"+" or "+
                VALUE_ID + "="+"'"+"20"+"'";

        //其实前面set语句都一样,后面的where 不一样

        getWritableDatabase().execSQL(update4);

    }

sqlite也无非就创建、增、删、改、查、更新。

    原文作者:duoduo7628
    原文地址: https://www.jianshu.com/p/6a21e79e421e
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞