android SQLite数据库总结


当前第2页 返回上一页

查询

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

返回前面的内容

相关阅读 >>

Sqlite 错误码整理

Sqlite教程(十二):锁和并发控制详解

基于sqlalchemy实现操作mysql并执行原生sql语句

springboot集成内存数据库derby的实践

android开发之Sqlite的使用方法

最新统计排名前十的sql和nosql数据库排行榜

android studio3.6.3 当前最新版本数据库查找与导出方法(图文详解)

如何通过android stduio来编写一个完整的天气预报app

python sqlalchemy库的使用方法

Sqlite教程(四):内置函数

更多相关阅读请进入《Sqlite》频道 >>


数据库系统概念 第6版
书籍

数据库系统概念 第6版

机械工业出版社

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



打赏

取消

感谢您的支持,我会继续努力的!

扫码支持
扫码打赏,您说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

分享从这里开始,精彩与您同在

评论

管理员已关闭评论功能...