查询
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()); } Toast.makeText(this,"删除完成",Toast.LENGTH_SHORT).show(); }
String whereClause = "name=?";//删除的条件 String[] whereArgs = {"123"};//删除的条件参数 db.delete("student",whereClause,whereArgs);//执行删除
增加
private void insert() {//保存数据到object数组 Object [] o=new Object[]{name,phone,gender}; //获取数据库操作对象 SQLiteDatabase db=helper.getWritableDatabase(); //sql:sql语句 bingArgs:参数数组 db.execSQL("insert into student values(null,?,?,?)",o); //关闭连接 db.close(); Toast.makeText(this,"增加成功",Toast.LENGTH_SHORT).show(); }
ContentValues cv = new ContentValues();//实例化一个ContentValues用来装载待插入的数据 cv.put("name","123"); db.insert("student",null,cv);//执行插入操作
以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,同时也希望多多支持!
标签:SQLite
相关阅读 >>
android开发笔记之android中数据的存储方式(一)
andriodstudio利用listview和数据库实现简单学生管理
android之采用execsql与rawquery方法完成数据的添删改查操作详解
Sqlitestudio打开后如何切换成简体中文Sqlitestudio绿色版中文设置方法介绍
更多相关阅读请进入《Sqlite》频道 >>

数据库系统概念 第6版
本书主要讲述了数据模型、基于对象的数据库和XML、数据存储和查询、事务管理、体系结构等方面的内容。