时间:2021-07-01 10:21:17 帮助过:80人阅读
注意:
sqlite数据库是一个嵌入式轻量级的数据库,内部不区分数据类型的,不对数据的长度校验。
复习sql语法:
* 增
insert into info (name,phone) values (‘zhangsan‘,‘110‘)
* 删
delete from info where name = ‘zhangsa2n‘
* 改
update info set phone=‘13512345678‘ where name=‘zhangsan‘
* 查
select name,phone from info
数据库文件是在 /data/data/包名/databases/xxx.db
利用sqlite3工具查看数据库的内容
sqlite3 xxx.db
如果出现中文乱码 需要修改cmd的编码集
65001 utf-8
chcp 65001 更改cmd窗口的编码,默认是gb2312
获取可写数据库
synchronized (this) {
return getDatabaseLocked(true);
}
获取只读数据库
synchronized (this) {
return getDatabaseLocked(false);
}
可读、可写数据库返回的是同一个数据库的实例,
区别就是:操作数据库的时候是否加锁。
直接利用sql语句增删改查
优点:非常的灵活,多表查询,级联查询。
缺点:代码容易出错,方法没有返回值。
利用google包装的api 执行增删改查
优点: 代码不容易出错,写起来简单,方法有返回值
缺点: 不容易多表查询。复杂表的操作,视图都无法实现。
需求: 把数据库的内容全部显示在界面上
MVC
m: model 数据模型 -- Person
v: view 视图 -- ListView
c: controller 控制器 --Adapter 数据适配器
什么是数据库的事务
保证一个操作要么同时成功,要么同时失败
db.beginTransaction();
try {
...
db.setTransactionSuccessful();
} catch (Exception e) {
Toast.makeText(this, "产生异常,事务回滚", 0).show();
} finally {
db.endTransaction();
}
案例:
张三给李四汇款
1. 张三 account - 1000
2. 李四 account + 1000
理解原理
03-数据库
标签: