android 3,android札记3

android笔记3

Pull解析器比SAX更简单,更容易理解;

Android集成了PULL解析器,

Pull解析器触发的事务是一个数字;

SAX解析触发的事务是一个函数的调用;

parser.getName();得到解析器当前指向的元素的名称

parser.getAttributeValue(0)这个是通过索引值得到属性的值的;

得到属性,如果属性有多个,顺序又不一样,那么可以用带名称空间的那一个,没有名称空间的就写为NULL;

---------------------------------------------------

SAX没有提供生成XML文件的类,所以要生成的话还要引入第三方,所在不太直观,也不太好理解;

用PULL生成XML文件;

serializer.setOutput(outputStream,encoding)

outputStream可是文件,内存,缓存,

encoding="UTF-8";

Pull解析器也采用事件驱动,触发的事务是一个数字;解析器不用从前到后都解析,

可以只解析其中的一部分的,而SAX解析则是从头到尾都要解析一遍;

-------------------------------------------------

存储软件配置参数:

getSharedPreferences("itcast",Context.MODE_PRIVATE);

itcast是文件名,代表itcast.xml,SharedPreferences是采用xml存贮的;

editor.commit()提交数据到背后的xml文件中;否则editor里面的值一直在内存里面;

可以通过两个方法得到SharedPreferences

this.getPreferences(Context.MODE_PRIVATE)这上将参数放到一个以简单类名为名的xml文件中;

Context context=getContext().createPackageContext(“cn.itcast.preferences”,Context.CONTEXT_IGNORE_READABLE)这个可以创建其他应用的上下文的,

SQLite最大的特点是你可以保存任何类型的数据到任何字段中,无论这列声明的数据类型是什么。

但有一种情况例外:定义为INTEGER PRIMARY KEY的字段只能存储64位整数, 当向这种字段保存除整数以外的数据时,将会产生错误。

SQLite 在解析CREATE TABLE 语句时,会忽略 CREATE TABLE 语句中跟在字段名后面的数据类型信息,

分页SQL与mysql类似,下面SQL语句获取5条记录,跳过前面3条记录

select * from Account limit 5 offset 3 或者 select * from Account limit 3,5

首先我们创建数据库,还有数据表

第二表:使用androd提供的API和SQL语句来完成;

SQLiteOpenHelper的构造函数的第二个参数是数据库的名称;

第三个参数是产生游标的工厂,若没有则置为NULL;

onCreate(SQLiteDatabase db)当用户第一次使用软件的时候,就会被调用;

onUpgrade();当版本变更的时候调用,比如;从1变为2的时候就会调用这个方法;

SQLiteDatabase db;

db.execSQL(HQL)这个是有更新行为的就用这句;

只有调用dbOpenHelper.getWriteableDatabase()这两个方法的时候,数据库才会创建;

只有当数据库空间满了才用getReadableDatabase();

其他的都用getWriteableDatabase()

SQLiteDatebase这个类就代表了一个数据库;

getReadableDatabase();是在数据库空间满的情况下使用的;

getWriteableDatabase()以读写的方式打开数据库;以这个方法打开数据库时当数据库空间满意的话则会以getReadable这个方法打开;

一般我们用的都是getWriteableDatabase()这个方法;

SQLiteDatabase db=dbOpenHelper.getWritableDatabase();

SQLiteDatabase db=dbOpenHelper.getWritableDatabase();

返回的是同一个用户的实例;

db.insert("person",null ,null)这一句是不能插入记录的;

db.insert("person",“name” ,null)

第二个参数可以是主键,既使是赋为空值,但是它也会自增的,

当第三个参数为NULL,又为了在数据库里面插入一条记录,则使第二个参数不为NULL,默认给第二个参数赋一个空值;

db.endTransaction,结束事务,一个是提交,一个是回rollback

db.setTransactionSuccessful(),设置事务标志为成功,否则当结束事务的时候就会是rollback;

如果是rollback则它的修改是不能成功的;

? extends Map这里面说的是必须是Map类型;

当出现_id出现错误;解决方法为,方法一把表的列名改为_id(主键的名称)

另一个方法是在查询的时候改为_id,

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值