Sqlite数据库:关系型数据库
一、特点与描述:
1、Sqlite数据库,是一个非常轻量的关系型数据库(意思就是非常小,只占用内存的200多K),Android框架已经嵌入了sqlite原生库,
2、 sqlite3支持的数据类型:null、integer、text、real(实数)、blob(二进制大数据) 也支持其他的类型:varchar、nVarchar、decimal等,使用其他的类型会转化相对应的类型.
3、支持的操作:支持标准sql语句、表、视图、触发器、事务等
4、以文件的形式存放数据库文件,存放的是用户的私有数据,位置:/data/data/<packagename>/databases
5、 两个重要的API:SqliteOpenHelper、 SQLiteDatabase
二、访问数据库的流程
1、通过SqliteOpenHelper来创建或打开数据库, 编写类,继承SqliteOpenHelper
构造方法:作用是创建和打开数据库
onCreate():当数据库第一次创建的时候,回调此方法,初始化数据库,例如:创建表
onUpgrade:数据库版本的更新方法

2、通过SQLiteDatabase对象来操纵数据库
-增删改查操作,都必须借助SQLiteDatabase对象
-获取SQLiteDatabase:SqliteOpenHelper.getReadableDatabase() 或者SqliteOpenHelper.getWriteableDatabase()
两种方式的区别:Read..这种:只读取数据库中的数据,则使用它更好,例如查询 Write...:需要操作数据库中的数据,例如:增删改
-事务:不可分割,原子性 ,共进退 : 取钱 : 在账号扣钱 atm 拿到钱 其中任何一步出现异常,都会进行回滚操作,也就是恢复到原来的样子, 例子:模拟银行转账
为了更好的说明步骤2,请下如下图
写一个工具类DBUtils:进行数据库的操作,增删改查,事务等
//其中构造方法就将new DBHelper(继承自SqliteOpenHelper),拿到DBHelper的对象helper,因为每个方法中都需要使用该对象从而得到SQLiteDatabase对象来操作数据库

增加数据操作

修改数据操作

删除数据操作

//查询数据操作,

//查询操作,对游标的使用,

//事务的使用

接下来使用测试类来测试这些方法是否有用,测试类请看前面的文章,
//插入操作测试

//删除操作测试

//查询方法测试

//更新数据方法测试

//事务测试

如何得知操作是否正确进行了呢? 两种方法
第一种方法:/data/data/<包名>/databases/ 在此目录下有创建好的数据库,将其导出来,利用别的软件将其打开,

第二种方法:通过 sqlite3命令来查看数据库中的数据
- 进入linux环境 adb shell
- 进入到当前包的/databases/目录
cd /data/data/com.wuhao. sqlitetest/
- sqlite3 itcast.db
- 写sql语句
在进入linux环境 adb shell 时有些人会遇到这个问题, 出现此问题原因有二,一是你可能没打开android虚拟设备,二连接中断了, 解决方法,打开android虚拟设备, 重新连接Reset adb

正确进入linux环境下,如图所示:

使用cd 进入到/data/data/目录下, 可以利用ls查看到当前目录下所有的文件
使用了 这两步命令: ①cd /data/data/ ② ls

在进入到目标包名下的databases,在利用ls查看目录底下有什么东西,我的包名是com.wuhao.sqlitetest ,你们的不一样,
命令:①cd com.wuhao.sqlitetest/databases ②ls

能看到我们所创建的数据库名了,使用命令:sqlite3 book_db; 进入该数据库中

这样就成功进入到数据库中了,接下来就编写数据库语句就可以了,例如,查询所有数据,(前提是该数据库中有数据,不然查不到)

这样就可以检验我们编写的那些操作是否正确执行了,
一、特点与描述:
1、Sqlite数据库,是一个非常轻量的关系型数据库(意思就是非常小,只占用内存的200多K),Android框架已经嵌入了sqlite原生库,
2、 sqlite3支持的数据类型:null、integer、text、real(实数)、blob(二进制大数据) 也支持其他的类型:varchar、nVarchar、decimal等,使用其他的类型会转化相对应的类型.
3、支持的操作:支持标准sql语句、表、视图、触发器、事务等
4、以文件的形式存放数据库文件,存放的是用户的私有数据,位置:/data/data/<packagename>/databases
5、 两个重要的API:SqliteOpenHelper、 SQLiteDatabase
二、访问数据库的流程
1、通过SqliteOpenHelper来创建或打开数据库, 编写类,继承SqliteOpenHelper
构造方法:作用是创建和打开数据库
onCreate():当数据库第一次创建的时候,回调此方法,初始化数据库,例如:创建表
onUpgrade:数据库版本的更新方法

2、通过SQLiteDatabase对象来操纵数据库
-增删改查操作,都必须借助SQLiteDatabase对象
-获取SQLiteDatabase:SqliteOpenHelper.getReadableDatabase() 或者SqliteOpenHelper.getWriteableDatabase()
两种方式的区别:Read..这种:只读取数据库中的数据,则使用它更好,例如查询 Write...:需要操作数据库中的数据,例如:增删改
-事务:不可分割,原子性 ,共进退 : 取钱 : 在账号扣钱 atm 拿到钱 其中任何一步出现异常,都会进行回滚操作,也就是恢复到原来的样子, 例子:模拟银行转账
为了更好的说明步骤2,请下如下图
写一个工具类DBUtils:进行数据库的操作,增删改查,事务等
//其中构造方法就将new DBHelper(继承自SqliteOpenHelper),拿到DBHelper的对象helper,因为每个方法中都需要使用该对象从而得到SQLiteDatabase对象来操作数据库

增加数据操作

修改数据操作

删除数据操作

//查询数据操作,

//查询操作,对游标的使用,

//事务的使用

接下来使用测试类来测试这些方法是否有用,测试类请看前面的文章,
//插入操作测试

//删除操作测试

//查询方法测试

//更新数据方法测试

//事务测试

如何得知操作是否正确进行了呢? 两种方法
第一种方法:/data/data/<包名>/databases/ 在此目录下有创建好的数据库,将其导出来,利用别的软件将其打开,

第二种方法:通过 sqlite3命令来查看数据库中的数据
- 进入linux环境 adb shell
- 进入到当前包的/databases/目录
cd /data/data/com.wuhao. sqlitetest/
- sqlite3 itcast.db
- 写sql语句
在进入linux环境 adb shell 时有些人会遇到这个问题, 出现此问题原因有二,一是你可能没打开android虚拟设备,二连接中断了, 解决方法,打开android虚拟设备, 重新连接Reset adb

正确进入linux环境下,如图所示:

使用cd 进入到/data/data/目录下, 可以利用ls查看到当前目录下所有的文件
使用了 这两步命令: ①cd /data/data/ ② ls

在进入到目标包名下的databases,在利用ls查看目录底下有什么东西,我的包名是com.wuhao.sqlitetest ,你们的不一样,
命令:①cd com.wuhao.sqlitetest/databases ②ls

能看到我们所创建的数据库名了,使用命令:sqlite3 book_db; 进入该数据库中

这样就成功进入到数据库中了,接下来就编写数据库语句就可以了,例如,查询所有数据,(前提是该数据库中有数据,不然查不到)

这样就可以检验我们编写的那些操作是否正确执行了,