android 的数据操作到底怎么一回事呢?
SqliteOpenHelper, Sqlitedatabase, ContentProvider, ContentResolver, 这些有什么联系,都怎么用呢?
1.SqliteOpenHelper:我们在这类中创建数据库表结构
2.Sqlitedatabase:属于应用程序内部的,对数据进行增删改查的操作,其它程序不可以操作。
3.ContentProvider:可以对自己应用程序的数据进行封装,以便其它应用程序可以操作本应用程序的数据
4.ContentResolver:通过这个类访问其它通过ContentProvider暴露数据的应用,可以对数据进行操作,包括增删改查
http://bbs.csdn.net/topics/350046306
http://blog.csdn.net/nieweilin/article/details/5919013
http://www.cnblogs.com/topcoderliu/archive/2011/05/15/2047155.html
http://www.cnblogs.com/topcoderliu/archive/2011/05/13/2045251.html
http://blog.csdn.net/maylian7700/article/details/7365368
http://blog.csdn.net/jason0539/article/details/10248457
http://blog.csdn.net/ameyume/article/details/8276219
http://www.cnblogs.com/elleniou/archive/2012/05/04/2482041.html
2013-12-10号更新
最近有遇到数据库的问题,又看了一看啊。。。
query,rawQuery,有什么区别呢?我的理解:rawQuery是执行原生的sql语句的,速度会比较快;而query是根据传入的参数进行查询的,底层会构建查询语句,不用工程师自己写 sql 语句,所以用起来比较方便。基本就这么点差别。
还有这个方法:execSQL( String sql)
rawQuery只能执行select操作,执行insert无效
execSQL只能执行除select之外的任何无返回值的sql语句
Execute a single SQL statement that is NOT a SELECT or any otherSQL statement that returns data.
不同的sql要用不同的接口,真麻烦啊,浪费了2,3个小时
Google的文档上对 public void execSQL (String sql,Object[] bindArgs) 的解释
Execute a single SQL statement that is NOT aSELECT/INSERT/UPDATE/DELETE.
但实际上可以执行INSERT,其他的没试
1. 使用SQLiteDatabase的beginTransaction()方法可以开启一个事务,程序执行到endTransaction() 方法时会检查事务的标志是否为成功,如果程序执行到endTransaction()之前调用了setTransactionSuccessful() 方法设置事务的标志为成功则提交事务,如果没有调用setTransactionSuccessful() 方法则回滚事务。使用例子如下:
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[]{"传智", 1});
db.setTransactionSuccessful();//调用此方法会在执行到endTransaction() 时提交当前事务,如果不调用此方法会回滚事务
} finally {
db.endTransaction();//由事务的标志决定是提交事务,还是回滚事务
}
db.close();
上面两条SQL语句在同一个事务中执行。
这个对事务写的挺清楚,不错的。
http://blog.sina.com.cn/s/blog_71f9299c0101b73y.html
http://linux.chinaitlab.com/unix/834287.html
http://blog.csdn.net/nieweilin/article/details/5919013
一个奇怪的问题记录下。。。
http://www.welp.cn/question/24392
http://bbs.csdn.net/topics/390286454?page=1
http://www.2cto.com/kf/201208/149104.html
http://www.cnblogs.com/wenjiang/archive/2013/05/28/3100860.html