日拱一卒(八)
来源:互联网 发布:淘宝十大名店是谁创的 编辑:程序博客网 时间:2024/06/05 15:21
1.文件存储
openFileOutput 和 openFileInput,其中openFileOutput 有两种模式MODE_PRIVATE(新写入的内容会覆盖先前的内容)、MODE_APPEND(新写入的内容追加到原有的内容);另外两种已经被废弃:MODE_WORLD_READABLE(表示当前文件可以被其他应用读取),MODE_WORLD_WRITEABLE(表示当前文件可以被其他应用写入)
2.SharedPreferences:
存储用其内部类Editor操作
3.SQlite数据库:
- SQLiteOpenHelper中getReadableDatabase()和getWritableDatabase()区别:当数据库不可写入的时候,getReadableDatabase()方法返回的对象将以只读的方式去打开数据库,而getWritableDatabase()方法则将出现异常。
- 什么是事务?SQlite中如何使用事务?
事务是用来保证数据库操作的一系列操作都成功的机制,如果成功数据替换成新的,否则还原成原有的数据。
使用方式:主要三个方法
db.beginTransaction();-----------在需要开启事务的数据库一系列操作前面开启事务
db.setTransactionSuccessful();--------------在数据库一系列操作完成后标志事务成功
db.endTransaction(); ----------------标志事务结束:
public class MainActivity extends Activity {private MyDatabaseHelper dbHelper;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);dbHelper = new MyDatabaseHelper(this, "BookStore.db", null, 2);……Button replaceData = (Button) findViewById(R.id.replace_data);replaceData.setOnClickListener(new OnClickListener() {@Overridepublic void onClick(View v) {SQLiteDatabase db = dbHelper.getWritableDatabase();<span style="color:#ff0000;">db.beginTransaction(); // 开启事务</span>try {db.delete("Book", null, null);if (true) {// 在这里手动抛出一个异常,让事务失败throw new NullPointerException();}ContentValues values = new ContentValues();values.put("name", "Game of Thrones");values.put("author", "George Martin");values.put("pages", 720);values.put("price", 20.85);db.insert("Book", null, values);<span style="color:#ff0000;">db.setTransactionSuccessful(); // 事务已经执行成功</span>} catch (Exception e) {e.printStackTrace();} finally {<span style="color:#ff0000;">db.endTransaction(); // 结束事务</span>}}});}}
- 如果数据库结构存在变动,数据库升级时如何避免先前的数据丢失?
主要是对onUpgrade方法的处理,不能简单粗暴的的删除所有表,在强制onCreate;不要删除先前的表,而是在先前的表上做修改或者添加的操作。
0 0
- 日拱一卒(八)
- 实习日志(八)
- JavaScript学习(八)
- 随笔(八)
- 毕业设计(八)
- 大数运算(八)
- CodeSmith基础(八)
- 八皇后(转)
- MySQL 优化(八)
- MySQL 优化(八)
- 操作系统(八)
- CodeSmith基础(八)
- CodeSmith基础(八)
- WhatsnewinMicrosoft2000(八)
- HTML 框架(八)
- Javascript对象(八)
- 项目开发(八)
- ASP 篇(八)
- Android点击EditText文本框之外任何地方隐藏键盘的解决办法
- Android控件GridView之仿支付宝钱包首页带有分割线的GridView九宫格的完美实现
- 自动实现ListView无数据时显示其他View
- 原php168的一个漏洞
- Intent.ACTION_TIME_TICK 广播
- 日拱一卒(八)
- Linux Apache 配置反向代理
- Makefile经典rumen教程
- 黄金分割二分法数值分析回顾
- Oracle EBS:PO 模块设定注意点Tips
- C/C++ sort函数的用法
- exit_creds error in kthread_stop().
- NumberPicker组件
- 网络爬虫(Spider)Java实现原理(转载)