安卓开发中的数据库技术——SQLite

搞安卓的人必须要知道安卓系统是内置了数据库的——SQlite,它是一款轻量级的关系型数据库,关系数据库:是建立在关系模型基础上的数据库,借助于集合代数等数学概念和方法来处理数据库中的数据。现实世界中的各种实体以及实体之间的各种联系均用关系模型来表示。关系模型就是指二维表格模型,因而一个关系型数据库就是由二维表及其之间的联系组成的一个数据组织。它的运算速度非常快,占用资源少,只需几百KB就够了。SQLite能支持SQL语法,所以对于学过SQL的人来说这很容易上手。话不多说,直奔主题!
第一步,创建数据库
android 中提供了一个SQLiteOpenHelper类,借助这个类我们能非常方便的对数据库进行创建和升级。但是这个类是abstract的,也就是说含有抽象方法的类称为抽象类,它不能生成对象。虽然它不能实例化对象,但是可以声明引用,所以我们要建立一个自己的类去继承它。SQLiteOpenHelper中有两个重要的方法:oncreate()和onupgade()。主要用来创建和升级数据库的逻辑。SQLiteOpenHelper类中还有两个实例方法getReadableDaabase()h和getWriteableDatabase()。他们都能打开或创建一个数据库,并返回一个可操作的对象。
继承SQLiteOpenHelper类要重写它的构造方法,android提供了两个可选的构造方法,一般选择参数少一点的那个就好了。安卓开发中的数据库技术——SQLite
第一个是Context,指的是上下文,想必大家都懂。第二个参数是数据库的名字,第三个参数表示允许查询数据是返回一个自定义的cusor,一般都传入null,第四个是版本号(等下要用到,再说),可用来对数据库升级。实例化后创建的数据库文件会放在/data/data/”你的包名”/databases/目录下。创建数据库后我们一般还会建立一个表(不然我们建立数据库干嘛?不就是来存数据吗?)建表语句要在oncreate()中执行所以我们在oncreate()中添加这么一句:安卓开发中的数据库技术——SQLite  只要你对SQL的建表语句有一点了解都会知道上面这句话的含义吧?它的功能是建立一个表名为Book,列名分别为id,author,price,pages,name的一张表。其中id integer primary key autoincrement是说id为主键并且自动增长。现在在主活动的布局文件中加一个button,<Button
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:id="@+id/create_database"
android:text="create_database"/>
布局文件很简单,知识简单的加了一个按钮,然后修改MainActivity中的x代码来实现这个按钮的逻辑。安卓开发中的数据库技术——SQLite这表示创建数据库了,但是我们要怎么判断已经建立好了呢?我们可以用AS自带的调试工具adb,他能直接对模拟机或手机进行调试操作,要想使用adb的话要先进行环境配置,这个大家可以去网上查。使用adb的方法,在控制台输入依次输入adb shell–>/cd /data/data/com.example.包名/databases/->够看到你建立的数据库了。第二步, 升级数据库。如果还要建立一张表,那就需要升级数据库只要在之前的构造函数中将第四个参数改为比1大的数即可以了,这就表示升级数据库了。但是还要注意一个问题,由于之前已经在oncreate()中建立过Book这张表了,现在新增一张表的话,之前的oncreate()现在就不会执行,所以也就会导致不能建表,所以我们要在onuograde()中加:安卓开发中的数据库技术——SQLite这两句:这表示如果原来存在这两张表的话就现删除,然后在调用oncreate()重新创建。## 第三步,添加数据。 ##添加数据很简单,由于getWriteabledatabase会返回一个sqlitedatabase对象,所以我们就住这个对象就能对数据库进行数据库操作了。安卓开发中的数据库技术——SQLite添加数据用insert()方法,它接收3哥参数,第一个是表名,第二个参数用于在未至定添加数据的情况下给某些可为控的列自动赋值NULL,第三个参数为一个contentvalue 对象,我们要把需要写入的数据装在这哥contentvalue 的put()方法中。数据装入后我们最后还是要取出来用的,这时候我们就要用到一个比较麻烦的查询方法,SQLiteDatabase中提供了一个query()方法用于对数据进行查询,黛娜这个方法的额参数非常复杂,最短的重载方法也要传入7哥参数,这里我们用最简单的查询————全部查询,其实那些参数主要是设置查询条件的,本次我们就不深入研究了。贴下代码:安卓开发中的数据库技术——SQLite注意TextView的setText()和append()的区别。安卓开发中的数据库技术——SQLite我们来看下程序运行结果: