android sql笔记

本文介绍了使用SQLite进行数据库操作的方法,包括查询、插入、更新和删除等基本操作,并详细解释了如何利用rawQuery()和query()方法执行SQL语句。此外,还探讨了事务处理的概念及其在数据操作中的应用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >



query() 做的一件事就是帮你拼写 SQL 语句,
而调用 rawQuery() 是你自己拼写好语句。我认为的差别仅次而已。
Cursor c = db.rawQuery("SELECT * FROM table WHERE android123=?", args); 执行本地SQL语句查询
Cursor c= db.query("***", new String[]{"name"}, "id=?", new String[]{"1"}, null, null, null);


Cursor c = db.rawQuery("select * from person where name like ? and age=?", new String[]{"%林计钦%", "4"});
Cursor c = db.query("person", new String[]{"personid,name,age"}, "name like ?", new String[]{"%ljq%"}, null, null, "personid desc", "1,2");
db.execSQL("insert into person(name, age) values(?,?)", new Object[]{"林计钦", 4});  
desc降序
asc 升序
db.delete("person", "personid<?", new String[]{"2"}); 从person表中删除personid小于2的记录。
SQLiteDatabase db = ....;
db.beginTransaction();//开始事务
try {
    db.execSQL("insert into person(name, age) values(?,?)", new Object[]{"林计钦", 4});
    db.execSQL("update person set name=? where personid=?", new Object[]{"abc", 1});
    db.setTransactionSuccessful();//调用此方法会在执行到endTransaction() 时提交当前事务,如果不调用此方法会回滚事务
} finally {
    db.endTransaction();//由事务的标志决定是提交事务,还是回滚事务

db.close(); 


相应地ContentObserver也分为“表“ContentObserver、“行”ContentObserver,
当然这是与它所监听的Uri MIME Type有关的。


notifyForDescendents 为false 表示精确匹配,即只匹配该Uri
为true 表示可以同时匹配其派生的Uri


// 通过调用getUriFor 方法获得 system表里的"飞行模式"所在行的Uri  
 Uri airplaneUri = Settings.System.getUriFor(Settings.System.AIRPLANE_MODE_ON);  
// 注册内容观察者  
getContentResolver().registerContentObserver(airplaneUri, false, airplaneCO);  
// ”表“内容观察者 ,通过测试我发现只能监听此Uri -----> content://sms  
// 监听不到其他的Uri 比如说 content://sms/outbox  
Uri smsUri = Uri.parse("content://sms");  
getContentResolver().registerContentObserver(smsUri, true,smsContentObserver); 


事務處理: 是為了保証數據的準確性. 在處理過程式, 如果出錯或者因條件不滿足, 
那么可乆將前面已操作的數據回復, 不做變化. 如果在一段程式, 要做相當多的變化, 一定要用事務處理
事务处理有开始,结束,回滚三种。
如:向一个主表和子表插入数据时。
如果顺利不出错在insert(主)前开始事务,在insert(子)后
结束事务。出错的话他就会回滚到insert前的状态。
如正常的写法:
{
开始事务
    执行操作
    。。。。
结束事务


回滚事务
   执行提示等一些信息
   。。。
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值