SQLite为开源的嵌入式关系数据库,支持事务,在android项目开发中常被用到。
在android项目开发中若想使用SQLite数据库必须继承抽象类SQLiteOpenHelper,要实现两个方法onCreate()和onUpgrade()方法。先看API介绍:onCreate(SQLiteDatabase db)Called when the database is created for the first time. onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion)
Called when the database needs to be upgraded.
onCreate()方法当数据库第一次被创建时调用,onUpgrade()方法当数据库进行版本升级时被调用。初次用SQLite数据库的一些开发者们可能都会犯一个错误,就是把建表语句都写在onCreate()方法中。这样写可能也不会出错,但当有时候需要补充建表时,把建表语句写在这里就会遇到android.database.sqlite.SQLiteException:no such table: reportinfo (code 1):异常。之所以会出现这个异常是因为onCreate()方法已经不会再被调用,because the database had already been created.
解决这个异常的方法是把补充建表的语句放在onOpen()方法中,话不多说看APIonOpen(SQLiteDatabase db)Called when the database has been opened.onOpen方法当数据库被打开时就会调用,放在这里的话就能保证补充创建表的语句一定会被调用。这就有效的避免了粗心而引起的no such table异常。
原文地址:http://blog.csdn.net/justdoittoday/article/details/45538635