![Android程序员面试笔试宝典](https://wfqqreader-1252317822.image.myqcloud.com/cover/682/39130682/b_39130682.jpg)
上QQ阅读APP看书,第一时间看更新
5.2.1 创建与更新数据库
先创建TestDatabaseHelper继承SQLiteOpenHelper,因为SQLiteOpenHelper是Android提供给开发者用来管理数据库的帮助类,使用它来创建和更新数据库会非常方便:
![](https://epubservercos.yuewen.com/FCD2F4/20516007501589706/epubprivate/OEBPS/Images/97_02.jpg?sign=1739911279-iQpMdjiKSbl6To3gtMGn7FHjpPOqLduR-0-f9fd23369b6d9d6909264ecc9a2bda36)
![](https://epubservercos.yuewen.com/FCD2F4/20516007501589706/epubprivate/OEBPS/Images/98_01.jpg?sign=1739911279-umsD9M85E3b0WiZwABArWDQ71CTHMojW-0-5dd103c3c6d8155519a220dd4e8cf380)
TestDatabaseHelper类创建好后,可以通过调用它的方法完成对数据库的操作:
![](https://epubservercos.yuewen.com/FCD2F4/20516007501589706/epubprivate/OEBPS/Images/98_02.jpg?sign=1739911279-eTT0z59ur9Fn9PAwWPusveMXmVfm2rhu-0-487caad3aa3a605493ee60449c13b013)
getWritableDatabase()与getReadableDatabase()都可以创建数据库对象,区别是当数据库已经不能写入时,使用getWritableDatabase()会出现异常情况,而使用getReadableDatabase()则无异常,但它返回的数据库对象是以只读方式来打开数据库的。
如果要升级数据库,则在TestDatabaseHelper类中再添加新的SQL语句,然后在onUpgrade()方法里进行更新操作,最后在调用方里的new TestDatabaseHelper()方法里直接改版本号即可:
![](https://epubservercos.yuewen.com/FCD2F4/20516007501589706/epubprivate/OEBPS/Images/98_03.jpg?sign=1739911279-eIyaTVWDfqA56QkMIQxKdVcmyh5Dl3Ux-0-69d5b1f2624368b735432e06963c5c7a)