三.SQLite数据库
1. 数据库的创建
1.1. 创建一个类,继承SQLiteOpenHelper类
1.2. 覆盖父类中的构造方法:super(context,name,factory,version)第一个参数为为上下文,第二个参数为数据库名称,第三个参数为数据库查询结果的游标工厂,第四个参数为数据库的版本>=1
1.3. 覆盖父类中的方法onCreate(SQLiteDatabase db):数据库在第一次创建的时候调用的方法,适合做数据库表结构的初始化,通过db.execSQL(String sql)创建数据库的表,在SQLite数据库中,各个参数的类型均已String的形式存储
1.4. 覆盖父类中的方法onUpgrade(SQLiteDatabase db,int oldVersion,intnewVersion):当程序的版本修改的时候执行的操作,主要用于数据库的的修改,如增加一个新的表
2. 数据库的增删改查
2.1. 通过sql语句实现
a. 获取数据库,在构造函数中创建一个数据库(helper)
b. 增、删、改:调用helper.getWritableDatabase();获取到数据库(简称db),通过db.execSQL(sql,Object[])执行相应操作,第一个参数为添加的sql语句,第二个语句为sql语句中对应的参数值,关闭数据库资源
c. 查:调用helper.getWritableDatabase();获取到数据库(简称db),通过db.rawQuery(sql,Object[])执行查询操作,关闭数据库资源
2.2. 通过Android内部定义的API实现(推荐使用较稳定)
a. 获取数据库,在构造函数中创建一个数据库(helper)
b. 增、删、改:调用helper.getWritableDatabase();获取到数据库(简称db),通过db.insert(),db.update(),db.delete()方法操作数据,通过ContentValues的put()方法设置查询条件的语句,关闭数据库资源
c. 查:调用helper.getWritableDatabase();获取数据库(简称db),通过db.query()操作数据库,关闭数据库资源
3. 数据库的事务管理
3.1. 开启事务:beginTransaction()
3.2. 设置事务的成功标记:setTransactionSuccessful()
3.3. 结束事务:endTransaction(),需要放在finally中执行,否则事务只有到超时的时候才自动结束,会降低数据库并发效率
4. ListView
4.1. ListView入门:ListView是基于MVC架构来实现的,M:javabean(数据),V:activity(界面),C:adapter(控制器)
4.2. 与ScrollView的区别:前者是一次性在页面上加载全部的条目信息,而ListView是在页面上加载一个页面可以容纳的条目信息
4.3. 适配器:在View页面上通过setAdapter(adapter)引入适配器,创建类继承BaseAdapter,覆盖类中的方法,其中getCount()表示要显示总的条目数,getView()表示显示条目的信息
4.4. 显示数据:为了让显示的数据以我们指定的页面进行显示,可以通过布局填充器(LayoutInflater)进行实现,View.inflate(context,layout,root)获取到我们指定的layout
4.5. 常见的数据适配器:
a. ArrayAdapter:可以改变显示界面中文本的内容,通过List集合操作
b. SimpleAdapter:可以改变显示界面中文本和图片,通过List<Map<String,? extendsObject>>进行操作
5. 查看数据库
5.1. 通过工具将数据库导出后显示出来
5.2. 通过命令行进行处理:adb shell-->cd data-->cd data-->cd 包名-->cd databases-->ls -1显示列表-->sqlite3数据库-->sql语句进行查询