Android中数据库的使用(学习笔记)

来源:互联网 发布:mac双系统win8蓝屏 编辑:程序博客网 时间:2024/06/17 06:16
-----------2016年10月14日22:10:07


Android中数据库的使用:


1.创建一个类,继承SQLiteOpenHelper,实现该类的构造方法
public XXX(Context context, String name, CursorFactory factory, int version)

-->该构造方法可以只设置一个参数Context context,其余参数可在surper中确定
public XXX(Context context, String name, CursorFactory factory, int version){
surper(context,name,factory,version);
}
-->改进之后
public XXXX(Context context){
surper(context,"xxx.db",null,1);
}
-->构造方法中参数的含义
context---上下文
name---数据库名称
factory---游标对象,默认为空
version---版本,从1开始的递增整数

2.创建好了类之后,重写onCreate()和onUpgrade()方法

-->onCreate()方法,在数据库第一次创建时调用,该方法主要用于表结构的创建。
所以,所有建表的sql语句,都在改方法中执行.
db.execSQL("sql");

-->onUpgrade()方法,数据库版本号改变/修改表结构(增/删一个字段)调用

3.实例化XXX类,调用静态方法getReadableDatabase/getWritableDatabase,得到SQLiteDatabase对象

XXX xx = new XXX(context);
SQLiteDatabase db = xx.getReadableDatabase();

☆☆☆操作完db及时关闭数据库,减少内存消耗
db.close();

4.进行增删改查操作

-->增加

long result = db.insert(String table, String nullColumnHack, ContentValues values);

table:表名
nullColumnHack:默认为null,为null时表示插入一个空行
values:添加那条数据的值,底层由HashMap实现,values.put(key,value)实现数据的添加

result:返回添加成功后那一行的ID,-1添加失败

-->删除
int result = db.delete(String table, String whereClause, String[] whereArgs);

whereArgs:判断条件,如"name=?"
whereClause:判断条件的占位符,String[]类型new String[]{"小王"}

result:删除的行数

-->更新
类似删除,多一个value

update(String table, ContentValues values, String whereClause, String[] whereArgs)
value:存放要更新的信息

-->查询(Cursor游标对象)
Cursor cursor = db.rawQuery(sql语句,查询条件)
返回cursor结果集

cursor.getCount()获取结果集的行数

cursor.moveToNext()判断是否有下一行内容,有返回true,无返回false;

☆☆☆cursor使用完后需要关闭,cursor.close();

5.优化
避免每次操作数据库,都实例化一个XXX类,创建数据库的过程放在dao的构造函数中,
☆☆☆☆其中,获取SQLiteDatabase对象的方法不能放在构造函数中。因为,在构造函数中
只获取了一个SQLiteDatabase对象,而每次对数据进行不同的操作后都关闭了数据库,在以
后的操作中,就无法获得SQLiteDatabase对象,从而导致对数据操作失败!





















0 0
原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 小孩发烧一会冷一会热怎么办 月子里得的风湿怎么办 腰窝中间凸起肉怎么办 线雕后一个月脸发红肿胀怎么办 雷诺氏病手指僵硬疼怎么办 哺乳妈妈吃咸了怎么办 吃流产药哺乳了怎么办 坐月子吃咸了怎么办啊 拔罐放血后头晕怎么办 e道航界面不动怎么办 微信必须打开位置权限怎么办 魅族sim卡未启用怎么办 苹果6sgps信号弱怎么办 苹果5s4g网络慢怎么办 苹果5s上网很慢怎么办 手机一体机死机关不了机怎么办 联想一体机关不了机怎么办 纸巾盒的吸盘老化了怎么办 粘的挂钩老掉怎么办 车载手机支架吸盘吸不住怎么办 吸盘吸不住怎么办才好? 行车记录仪吸盘吸不住怎么办 小米儿童手表二维码丢了怎么办 艾蔻手表二维码丢失了怎么办 玩具直升机遥控器坏了怎么办 玩具飞机遥控器坏了怎么办 玩具无人机遥控器坏了怎么办 玩具遥控车遥控器坏了怎么办 用遥控器关电视后打不开怎么办 汽车遥控器按键坏了怎么办 用遥控器关了电视打不开怎么办 遥控器一个按键坏了怎么办 电视用遥控器关的打不开怎么办 电动车遥控器按键坏了怎么办 海尔空调遥控器按键坏了怎么办 汽车手机支架吸盘吸不住怎么办 车载手机支架吸盘坏了怎么办 假牙的吸盘坏了怎么办 燃气费用一直未交怎么办 凌度gps模块无法定位怎么办? 放疗定位线掉了怎么办