#sqlite介绍
>sqlite:轻量级数据库->不区分数据类型 嵌入式数据库->不需要安装相应的软件支持 直接调用系统提供的API就可以使用了
>创建数据库实际上就是一个特殊的一个文件 这个文件在包下面
>如何创建一个数据库
[1]定义一个类继承SQLiteOpenHelper
[2]在SQLiteOpenHelper中onCreate方法中执行sql语句
[2.1]create table info(_id integer primary key,name text,age text)
[2.2]alter table info add sex text
>注意事项
[1]Android推荐在建立表的时候用_id作为主键
[1]自增长设置 _id integer primary key
[2]sqlite不能降级
[3]使用就像File对象操作 创建对象 不会创建数据库
#使用sql语句进行增删改查
[1]getReadableDatabase 获取一个可读数据库 会先获取一个getWritableDatabase 当磁盘满了 只返回可读
[2]getWritableDatabase 获取一个可写数据库 当磁盘满了 报错
增[1]insert into info values(null,'张三',18,'男')
查[2]select * from info;
改[3]update info set age='20' where name='张三'
删[4]delete from info where name='张三'
#使用谷歌封装好的API完成增删改查
[1]使用sql语句实现增删改查非常容易出错
[2]nullColumnHack: 当values参数为空或者里面没有内容的时候,insert是会失败的
#android事务操作
事务:要么代码执行都成功,要么代码执行都失败
[1]create table info(_id integer primary key autoincrement,name text,money text)
[2]insert into info values(null,'张三',5000)
[2]insert into info values(null,'李四',5000)
事务的标准写法:
db.beginTransaction();
try {
...
db.setTransactionSuccessful();
} finally {
db.endTransaction();
}
业务逻辑:
[1]update info set money = money-200 where name='张三'
[2]update info set money = money+200 where name='李四'
事务没有执行成功 就会执行回滚操作,实际上就是撤消之前的操作
>sqlite:轻量级数据库->不区分数据类型 嵌入式数据库->不需要安装相应的软件支持 直接调用系统提供的API就可以使用了
>创建数据库实际上就是一个特殊的一个文件 这个文件在包下面
>如何创建一个数据库
[1]定义一个类继承SQLiteOpenHelper
[2]在SQLiteOpenHelper中onCreate方法中执行sql语句
[2.1]create table info(_id integer primary key,name text,age text)
[2.2]alter table info add sex text
>注意事项
[1]Android推荐在建立表的时候用_id作为主键
[1]自增长设置 _id integer primary key
[2]sqlite不能降级
[3]使用就像File对象操作 创建对象 不会创建数据库
#使用sql语句进行增删改查
[1]getReadableDatabase 获取一个可读数据库 会先获取一个getWritableDatabase 当磁盘满了 只返回可读
[2]getWritableDatabase 获取一个可写数据库 当磁盘满了 报错
增[1]insert into info values(null,'张三',18,'男')
查[2]select * from info;
改[3]update info set age='20' where name='张三'
删[4]delete from info where name='张三'
#使用谷歌封装好的API完成增删改查
[1]使用sql语句实现增删改查非常容易出错
[2]nullColumnHack: 当values参数为空或者里面没有内容的时候,insert是会失败的
#android事务操作
事务:要么代码执行都成功,要么代码执行都失败
[1]create table info(_id integer primary key autoincrement,name text,money text)
[2]insert into info values(null,'张三',5000)
[2]insert into info values(null,'李四',5000)
事务的标准写法:
db.beginTransaction();
try {
...
db.setTransactionSuccessful();
} finally {
db.endTransaction();
}
业务逻辑:
[1]update info set money = money-200 where name='张三'
[2]update info set money = money+200 where name='李四'
事务没有执行成功 就会执行回滚操作,实际上就是撤消之前的操作