【0030】Android基础-17-数据库sqlite的操作之增删改查第二种方法

【1】数据库sqlite的操作之增删改查第二种方法:使用Android中的sqlite自带的增删改查函数

 

【增】

【删】

【改】

 【查】

【源码】

  1 package com.itheima.crud.dao;
  2 
  3 import android.content.ContentValues;
  4 import android.content.Context;
  5 import android.database.Cursor;
  6 import android.database.sqlite.SQLiteDatabase;
  7 
  8 import com.itheima.crud.MySqliteOpenHelper;
  9 import com.itheima.crud.bean.InfoBean;
 10 
 11 public class InfoDao {
 12 
 13 
 14     private MySqliteOpenHelper mySqliteOpenHelper;
 15     public InfoDao(Context context){
 16         //创建一个帮助类对象
 17         mySqliteOpenHelper = new MySqliteOpenHelper(context);
 18 
 19         
 20     }
 21 
 22     public boolean add(InfoBean bean){
 23 
 24         //执行sql语句需要sqliteDatabase对象
 25         //调用getReadableDatabase方法,来初始化数据库的创建
 26         SQLiteDatabase     db = mySqliteOpenHelper.getReadableDatabase();
 27         
 28         
 29         ContentValues values = new ContentValues();//是用map封装的对象,用来存放值
 30         values.put("name", bean.name);
 31         values.put("phone", bean.phone);
 32         
 33         //table: 表名 , nullColumnHack:可以为空,标示添加一个空行, values:数据一行的值 , 返回值:代表添加这个新行的Id ,-1代表添加失败
 34         long result = db.insert("info", null, values);//底层是在拼装sql语句
 35     
 36         //关闭数据库对象
 37         db.close();
 38         
 39         if(result != -1){//-1代表添加失败
 40             return true;
 41         }else{
 42             return false;
 43         }
 44     }
 45 
 46     public int del(String name){
 47 
 48         //执行sql语句需要sqliteDatabase对象
 49         //调用getReadableDatabase方法,来初始化数据库的创建
 50         SQLiteDatabase db = mySqliteOpenHelper.getReadableDatabase();
 51         
 52         //table :表名, whereClause: 删除条件, whereArgs:条件的占位符的参数 ; 返回值:成功删除多少行
 53         int result = db.delete("info", "name = ?", new String[]{name});
 54         //关闭数据库对象
 55         db.close();
 56         
 57         return result;
 58 
 59     }
 60     public int update(InfoBean bean){
 61 
 62         //执行sql语句需要sqliteDatabase对象
 63         //调用getReadableDatabase方法,来初始化数据库的创建
 64         SQLiteDatabase db = mySqliteOpenHelper.getReadableDatabase();
 65         ContentValues values = new ContentValues();//是用map封装的对象,用来存放值
 66         values.put("phone", bean.phone);
 67         //table:表名, values:更新的值, whereClause:更新的条件, whereArgs:更新条件的占位符的值,返回值:成功修改多少行
 68         int result = db.update("info", values, "name = ?", new String[]{bean.name});
 69         //关闭数据库对象
 70         db.close();
 71         return result;
 72 
 73     }
 74     public void query(String name){
 75     
 76         //执行sql语句需要sqliteDatabase对象
 77         //调用getReadableDatabase方法,来初始化数据库的创建
 78         SQLiteDatabase db = mySqliteOpenHelper.getReadableDatabase();
 79         
 80         //table:表名, columns:查询的列名,如果null代表查询所有列; selection:查询条件, selectionArgs:条件占位符的参数值,
 81         //groupBy:按什么字段分组, having:分组的条件, orderBy:按什么字段排序
 82         Cursor cursor = db.query("info", new String[]{"_id","name","phone"}, "name = ?", new String[]{name}, null, null, "_id desc");
 83         //解析Cursor中的数据
 84         if(cursor != null && cursor.getCount() >0){//判断cursor中是否存在数据
 85             
 86             //循环遍历结果集,获取每一行的内容
 87             while(cursor.moveToNext()){//条件,游标能否定位到下一行
 88                 //获取数据
 89                 int id = cursor.getInt(0);
 90                 String name_str = cursor.getString(1);
 91                 String phone = cursor.getString(2);
 92                 System.out.println("_id:"+id+";name:"+name_str+";phone:"+phone);
 93                 
 94                 
 95             }
 96             cursor.close();//关闭结果集
 97             
 98         }
 99         //关闭数据库对象
100         db.close();
101 
102     }
103 }

 

posted @ 2017-10-20 21:05  OzTaking  阅读(265)  评论(0)    收藏  举报