android sqlite数据库 修改数据

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

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

        //将数据添加至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也无非就创建、增、删、改、查、更新。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 135,099评论 19 139
  • 韩寒说:“恰恰是语文毁灭了很多学生对文学的兴趣。”在我看来,不仅仅是作文,是语文毁灭了很多同学对文学的兴趣。 为什...
    独孤九剑1阅读 286评论 7 2
  • 网页可见区域宽:document.body.clientWidth网页可见区域高:document.body.cl...
    上海侯亮平阅读 326评论 0 0
  • 红色的章子也是可恶!这么小,还七拐八扭的!绣着绣着就绣歪了!
    停针不语时阅读 364评论 2 4