Android 第三天重置版_注意事项

数据库的创建:

alter 就是改变,意思就是添加一个字段。

getWritableDatabase取得的实例不是仅仅具有写的功能,而是同时具有读和写的功能

同样的,getReadableDatabase取得的实例也是具对数据库进行读和写的功能

两者的区别在于

getWritableDatabase取得的实例是以读写的方式打开数据库,如果打开的数据库磁盘满了,此时只能读不能写,此时调用了getWritableDatabase的实例,那么将会发生错误(异常)

getReadableDatabase取得的实例是先调用getWritableDatabase以读写的方式打开数据库,如果数据库的磁盘满了,此时返回打开失败,继而用getReadableDatabase的实例以只读的方式去打开数据库


————

增删改查1:

我们一般把增删改查的方法写在dao类里面。

注意一点就是我们要实现增删改查的方法我们必须要使用,SQLiteDatabase 的对象。

所以我们一般会传递这个对象进去。

但是在公司,我们为了节省内存,一般直接在方法中创建对象,而不传递对象。这样我们在调用方法完,就会销毁。


我们用db.execSQL来实现增删改;

//sql:sql语句,  bindArgs:sql语句中占位符的值

db.execSQL(sql,object[]bindArags)

占位符就是用? 代替你要找的参数的值.


但是当我们字段多余1 的时候 我们需要创建一个bean类 来传递参数。

如果只有一个 就可以直接传递 ,如 add(String name);


但是由于execSQL没有 返回值,所以不能用来查询,我们就使用一个

//sql:sql语句,  selectionArgs:查询条件占位符的值,返回一个cursor对象

db.rewQuery(sql,String [] selectionArgs );

可以获得一个cursor对象,这个对象就是一个结果集对象。


记住:每一次在方法中创建了 SQLiteDatebase对象 要close 掉;


cursor.getcount();返回数据库的行数;


注意一个问题就是 当我们在方法中使用close时,你必须每次进来都要创建一个db对象,不然第二次 的时候我们会报错。


——————

使用cmd 去访问 数据库的内容:

第一步 adb shell

第二步去 cd /data/data/包名

第三步 cd databases

第四步 sqlite3 表名.db

第五步 执行Sql语句,记得语句后加分号;

____


————

ListView 怪异现象:

如果ListView 控件使用的是包裹内容,且内容少。那么他会出现 一直创建对象去尝试,手机的高度和宽度,会浪费内存.

所以我们一般使用充满父窗体,这样他一开始就知道了宽和高,不需要去尝试.

___



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值