【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 }