您的位置:首页 > 移动开发 > Android开发

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

2016-03-05 22:50 441 查看
数据库的创建:



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 控件使用的是包裹内容,且内容少。那么他会出现 一直创建对象去尝试,手机的高度和宽度,会浪费内存.

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

___
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  Android