前段时间写android用到SQLIteOpenHelper时,踩了一些小坑,仔细思考了一下,踩坑的根源在于,我没有正确的理解SQLiteOpenHelper这个类。那么,我们一起来看看SQLiteOpenHelper究竟是个什么东东,以及如何正确地使用SQLiteOpenHelper,希望可以帮助博友们理解,避免踩到了类似的坑。
本文的将首先介绍下SQLiteOpenHelper的作用,然后引申出一些在使用SQLiteOpenHelper时需要注意的事项,最后,通过一个小demo演示下SQLiteOpenHelper操作数据库。
SQLiteOpenHelper是什么
望文生义,从名字上看来,至少可以得到三个方面的信息。第一,和SQLite数据库有关。第二,和打开一个数据库有关。第三,这是一个帮助类。
当然,这些都是从名字上联想到的,难免有主观臆断之嫌,哈哈。我们来看看官方的说法:A helper class to manage database creation and version management. 所以,官方把SQLiteOpenHelper的作用解释为:一个数据库创建和版本管理的帮助类。
引起我注意的是,类名起的和解释不是很切合。既然是管理的帮助类,并且是管理数据库的创建和版本,那么为什么类名包含"Open"这个单词呢?为什么不叫SQLiteManageHelper,或者更准确的,SQLiteCreationAndUpgradeHelper呢?且听下文分解。
我们知道,我们可以通过sql来操纵数据库,做增删改查。但是呢,如果是我们从头开始写一遍数据库逻辑的话,其实不只sql操作。一个简单的流程是这样的:打开数据库->sql操作数据库->关闭数据库。而打开数据库,又牵涉到