码迷,mamicode.com
首页 > 数据库 > 详细

02_SQliteOpenHelper介绍&oncreate方法介绍

时间:2017-06-16 10:09:02      阅读:362      评论:0      收藏:0      [点我收藏+]

标签:指定   logs   subclass   optional   alt   手机   exec   number   read   

file:///D:/BaiduNetdiskDownload/adt-bundle-windows-x86_64_20140101/adt-bundle-windows-x86_64_20140101/sdk/docs/reference/android/database/sqlite/SQLiteOpenHelper.html

A helper class to manage database creation and version management.

You create a subclass implementing onCreate(SQLiteDatabase)onUpgrade(SQLiteDatabase, int, int) and optionally onOpen(SQLiteDatabase), and this class takes care of opening the database if it exists, creating it if it does not, and upgrading it as necessary. Transactions are used to make sure the database is always in a sensible state.

技术分享

技术分享

Open Declaration android.database.sqlite.SQLiteOpenHelper.SQLiteOpenHelper(Context context, String name, CursorFactory factory, int version)



public SQLiteOpenHelper (Context context, String name, SQLiteDatabase.CursorFactory factory, int version) 
Added in API level 1
Create a helper object to create, open, and/or manage a database. This method always returns very quickly. The database is not actually created or opened until one of getWritableDatabase() or getReadableDatabase() is called.

Parameters
context  to use to open or create the database 
name  of the database file, or null for an in-memory database 
factory  to use for creating cursor objects, or null for the default 
version  number of the database (starting at 1); if the database is older, onUpgrade(SQLiteDatabase, int, int) will be used to upgrade the database; if the database is newer, onDowngrade(SQLiteDatabase, int, int) will be used to downgrade the database  

context:上下文

name:数据库文件的名字,如果name=null就会在内存当中创建一个数据库。如果你只是想临时用一下,并不想把这个数据真正的保存成文件那就可以传一个null。

如果说你真正的想把你的数据保存到本地的存储文件的话,那你一定要给它起一个名字。内存只要是一掉电/手机关上了,内存的内容就都会被清空了。或者你的应用程序退出了,你的进程被系统回收掉之后你的内存里面的内容将毫无意义。你当前程序使用的这块内存就会分配给其他程序再去使用。所以真正的想把数据存储到磁盘上一定要把这个参数传进来,给它指定数据库文件的名字。

CursorFactory:游标工厂 JDBC查询之后会返回一个结果集ResultSet,这个ResultSet里面就会有一个游标。在安卓当中查询之后它返回的就是一个Cursor,就是游标。怎么去创建这个游标,就需要一个CursorFactory,游标工厂。如果用系统默认的游标工厂传一个null就可以了。基本上咱们在这里都用系统帮咱们创建的游标工厂。所以第三个参数传一个null即可。

version:数据库版本号。数据库的版本号必须从1开始。怎么去控制数据库的升级和降级,这就涉及到我把这个版本号从1变成2.说明我的数据库升级了,反之则是降级。


Open Declaration void com.itheima.sqlitehello.MyOpenHelper.onCreate(SQLiteDatabase db)


@Override


Overrides: onCreate(...) in SQLiteOpenHelper
public abstract void onCreate (SQLiteDatabase db) 
Added in API level 1
Called when the database is created for the first time. This is where the creation of tables and the initial population of the tables should happen.

Parameters
db  The database.  

 

Open Declaration android.database.sqlite.SQLiteDatabase



SQLiteDatabase has methods to create, delete, execute SQL commands, and perform other common database management tasks. 

技术分享

 在安卓当中你的SQL一旦写错了会带来一系列的麻烦,因为它报错报的并不是很明确。所以可以把SQL之前先在Mysql试一试。SQL一旦写错了在安卓代码当中不太容易发现。

SQLite数据库 一般id都用_id开头。

技术分享

技术分享

技术分享

 数据库文件没有被创建,自然SQL语句也就没有被执行。究竟什么时候会创建一个SQLite数据库呢?

02_SQliteOpenHelper介绍&oncreate方法介绍

标签:指定   logs   subclass   optional   alt   手机   exec   number   read   

原文地址:http://www.cnblogs.com/ZHONGZHENHUA/p/7023114.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!