设为首页 加入收藏

TOP

android SQLite数据库总结(二)
2017-10-13 10:30:48 】 浏览:2498
Tags:android SQLite 数据库 总结
码咯  执行sql语句 和封装好的方法

查询

   private void query() {
        StringBuffer sb=new StringBuffer("select * from student where 1=1");
        //参数集合
        List<String> params=new ArrayList<>();
        if(!TextUtils.isEmpty(id)){
            sb.append(" and _id=?");
            params.add(id);
        }
        if(!TextUtils.isEmpty(phone)){
            sb.append(" and phone=?");
            params.add(phone);
        }
        if(!TextUtils.isEmpty(name)){
            sb.append(" and name=?");
            params.add(name);
        }
        if(!TextUtils.isEmpty(gender)){
            sb.append(" and gender=?");
            params.add(gender);
        }
        SQLiteDatabase db=helper.getReadableDatabase();
        String [] projection=new String [params.size()];
        params.toArray(projection);
        //返回值 游标
        Cursor cursor=db.rawQuery(sb.toString(),projection);
    //判断游标是否为空,是否有一个值
while(cursor!=null&&cursor.moveToNext()){ // getColumnIndex获取列的下标 cursor.getXXXX()获取指定列的值 String name=cursor.getString(cursor.getColumnIndex("name")); Integer id=cursor.getInt(cursor.getColumnIndex("_id")); } }

用不到的参数就让它为空吧   遍历数据就while循环就好咯

Cursor c = db.query("student",null,null,null,null,null,null);//查询并获得游标

 

更新

  private void update() {
        StringBuffer sb=new StringBuffer("update student set ");
        List params=new ArrayList();
        if(!TextUtils.isEmpty(phone)){
            sb.append("phone=?,");
            params.add(phone);
        }
        if(!TextUtils.isEmpty(name)){
            sb.append("name=?,");
            params.add(name);
        }
        if(!TextUtils.isEmpty(gender)){
            sb.append("gender=?,");
            params.add(gender);
        }
        if (params.size()!=0){
            //更新操作拼接字符串末尾有一个","需要去除
            //删除最后一位的“,”
            sb.setLength(sb.length()-1);
            sb.append(" where 1=1");
            //通过id指定 更新那行数据
            if(!TextUtils.isEmpty(id)){
                sb.append(" and _id=?");
                params.add(id);
            }else{
                Toast.makeText(this,"请填写id",Toast.LENGTH_SHORT).show();
                return;
            }
            SQLiteDatabase db=helper.getWritableDatabase();
            Object [] o=new Object[params.size()];
            params.toArray(o);//将数据存放到指定的数组中
            db.execSQL(sb.toString(),o);
        }
    }
ContentValues cv = new ContentValues();//实例化ContentValues
cv.put("name","123");//添加要更改的字段及内容
String whereClause = "phone=?";//修改条件
String[] whereArgs = {"12312313213"};//修改条件的参数
db.update("student",cv,whereClause,whereArgs);//执行修改

 

 

删除

   private void delete() {
        getAllText();
        //拼接sql语句
        StringBuffer sb=new StringBuffer("delete from student where 1=1");
        //保存参数的list
        List params=new ArrayList();
        //判断条件  动态拼接
        if(!TextUtils.isEmpty(id)){
            sb.append(" and _id=?");
            params.add(id);
        }
        if(!TextUtils.isEmpty(phone)){
            sb.append(" and phone=?");
            params.add(phone);
        }
        if(!TextUtils.isEmpty(name)){
            sb.append(" and name=?");
            params.add(name);
        }
        if(!TextUtils.isEmpty(gender)){
            sb.append(" and gender=?");
            params.add(gender);
        }
        SQLiteDatabase db=helper.getWritableDatabase();
        if (params.size()!=0){
            Object [] o=new Object[params.size()];
            params.toArray(o);//将数据存放到指定的数组中
            //执行删除
            db.execSQL(sb.toString(),o);
        }else{
            db.execSQL(sb.toString());
        }
首页 上一页 1 2 3 下一页 尾页 2/3/3
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
上一篇解决Android&eclipse无法RunAs的.. 下一篇Android之动态申请权限(API23以..

最新文章

热门文章

Hot 文章

Python

C 语言

C++基础

大数据基础

linux编程基础

C/C++面试题目