树懒_移动开学笔记_day22_pull解析与SQLite
来源:互联网 发布:网络诈骗安全选择题 编辑:程序博客网 时间:2024/06/06 00:32
树懒
day22
pull解析与移动存储
一、pull解析 xml文件
java中xml文件的解析方式
dom解析: 把文件先导入到内存,再解析,不很适合手机设备
sax解析:边导入,边解析,以事件驱动的形式来解析xml文件,当解析到一个节点,回调该节点类型的方法
直到文档结尾
pull解析:边导入,边解析,以事件驱动的形式来解析xml文件,当解析到一个节点,返回的是该节点的类型(int 整数),不再继续解析,需要手动指向下一个节点 ,直到文档的结尾 ,pull解析默认会自动解析第一个节点pull解析的特点
事件驱动机制来解析
当解析到一个节点,会自动停止,不会往下继续解析,好处 :很好能够控制流程
android默认采用pull解析pull解析的事件类型
start_document :开始文档事件 ,事件类型
end_docuent :结束文档事件
start_tag: 开始标记
end_tag :结束标记二、Sqlite数据库 :关系型数据库
1.特点与描述:
Sqlite数据库,是一个非常轻量的关系型数据库,Android框架已经嵌入了sqlite原生库
sqlite3支持的数据类型: null、integer、text、real(实数)、blob(二进制大数据),
也支持其他的类型:varchar、nVarchar、decimal等,会转化成相应的类型
支持的操作: 支持标准sql语句、表、视图、触发器、事务等
以文件的形式存放数据库文件,存放的是用户的私有数据
位置/data/data//databases2.访问数据库的流程
通过SqliteOpenHelper来创建或者打开数据,编写类,继承SqliteOpenHelper
- 构造方法: 创建和打开数据库
- onCreate方法: 当数据库第一次创建的时候,回调该方法,初始化数据库,比如创建表
- onUpgrade :数据库版本的更新方法
通过SQLiteDatabase对象来操纵数据库
SQLiteDatabase db=SqliteOpenHelper.getReadableDatabase()\getWriteableDatabase()
增删改查
事务 :不可分割,原子性 ,共进退 : 取钱 : 在账号扣钱 atm 拿到钱
模拟银行转账展示数据: ListView
3.常用的API
SqliteOpenHelper
SQLiteDatabase4.采用SimpleCursorAdapter 适配数据
游标Cursor关联的表必须要有_id 作为主键通过 sqlite3命令来查看数据库中的数据
进入linux环境 adb shell
进入到当前包的/databases/目录
sqlite3 itcast.db
写sql语句
开发一个JEE 项目 ,基于关系型数据库mysql 、orcacle 实现流程:
1. 分析数据,先通过视图来创建数据库
domain :域 t_product(字段 ) java :面向对象 Product 类
Hibernate :逆向工程,把表自动生成java类
2. 访问数据库 ,通过jdbc访问数据库
驱动 、建立连接 Connection
执行对象 执行sql语句 Statement PrepareStatement: 设置占位符 ?
ResultSet:结果集
遍历结果集
开发一个android项目 ,基于关系型数据库Sqlite ,实现流程
1. 一般第一次访问数据库的时候创建数据库
通过sql语句 创建数据库、创建表、添加初始数据
直接把初始数据itcast.db 发布到assets 资产目录中 ,因为assets中的文件会与apk一同发布出去
当用户安装了apk时,运行项目的时候再把assets的itcast.db 文件拷贝到 /data/data/<包名>/database
2. 操纵数据库
SqliteDatabase 工具
3. 操纵:
增删改查、事务
4. 结果 Cursor :游标
- 树懒_移动开学笔记_day22_pull解析与SQLite
- 树懒_移动开学笔记_day01_web_html
- 树懒_移动开学笔记_day03_web_JavaScript高级
- 树懒_移动开学笔记_day06_http_servlet
- 树懒_移动开学笔记_day07_request_response
- 树懒_移动开学笔记_day08_cookie_session
- 树懒_移动开学笔记_day09_jsp
- 树懒_移动开学笔记_day10_jsp_el_jstl
- 树懒_移动开学笔记_day12_mysql语法
- 树懒_移动开学笔记_day13_jdbc_sql注入
- 树懒_移动开学笔记_day25_服务
- 树懒_移动开学笔记_day28_Fragment_ActionBar
- 树懒_移动开学笔记_day28_Fragment_ActionBar思路
- 树懒_移动开学笔记_day27_网络通信_动画与图片
- 树懒_移动开学笔记_day27_网络通信(框架)_动画与图片思路
- 树懒_移动开学笔记_day31_编程规范_安全卫士
- 树懒_移动开学笔记_day41_安全卫士_进程管理
- 树懒_移动开学笔记_day04.2_XML笔记
- 1064. Complete Binary Search Tree (30)
- getClass(),class属性和getName()解析getGenericSuperclass
- 树懒_移动开学笔记_day21_自定义通知_存储思路
- [C++]学习札记2015-08-21
- VS2015 scanf 函数报错 error C4996: 'scanf'
- 树懒_移动开学笔记_day22_pull解析与SQLite
- 关于离散数学
- 构造函数为什么不能是虚函数
- 这是一个测试帖子
- 经典语录
- Android学习之自定义view(一)
- Codeforces 276E(树状数组)
- android SDK Manager下载和更新速度慢甚至无法下载解决方案
- volatile和synchronized关键字