爱华对sqlite的理解

上传人:飞*** 文档编号:44741131 上传时间:2018-06-14 格式:DOC 页数:7 大小:82KB
返回 下载 相关 举报
爱华对sqlite的理解_第1页
第1页 / 共7页
爱华对sqlite的理解_第2页
第2页 / 共7页
爱华对sqlite的理解_第3页
第3页 / 共7页
爱华对sqlite的理解_第4页
第4页 / 共7页
爱华对sqlite的理解_第5页
第5页 / 共7页
点击查看更多>>
资源描述

《爱华对sqlite的理解》由会员分享,可在线阅读,更多相关《爱华对sqlite的理解(7页珍藏版)》请在金锄头文库上搜索。

1、AndroidSqlite DB2INDEX1, 热身,温故知新.2 A.如何建 DB? .3 B.如何建 Table.3 1, 如果你使用继承 SQLiteOpenHelper 这个类,你就会想 .4 C.怎么从无到有,建立一个 table 呢?.4 D.怎么操作 table 呢,比如:增,删,改,查等?.4 E.Activity 怎么获得操作数据库而得到的 data 呢?.4 F.怎么从无到有,建立一个 table 呢?.4 G.怎么操作 table 呢,比如:增,删,改,查等?.5 H.Activity 怎么获得操作数据库而得到的 data 呢?.5 2,利用别的方法来操作 Sqlite

2、 数据库。 .6 怎么操作 table 呢,比如:增,删,改,查等?.6 3,最原始办法 execSQL 创建修改数据库.6 4,SQLite DB 命令行 语句 集锦.61, 热身,温故知新热身,温故知新今天你要自己建一个 DB, 然后再建 table. 好久不碰 DB,你迷糊了。其实,看了下面就够了。 。3A.如何建如何建DB?A, 通过继承 SQLiteOpenHandler, 只不过你自己要写一个 Constructor, 标准 sdk 源码里的构造器如下: public SQLiteOpenHelper(Context context, String name, CursorFact

3、ory factory, int version) mContext = context;mName = name;mFactory = factory;mNewVersion = version;结果这里,除了 CursorFactory 不知道什么用,其他的都有用,如下 CursorFactory factory an optional factory class that is called to instantiate a cursor when query is called, or null for defaultmName 其实就是你的数据库名字mNewVersion 就是系统每

4、建一个数据库,都有版本,版本不同,会给你自动更新,具体码当你调用 getWritableDatabase() 方法时,会调用如下db = mContext.openOrCreateDatabase(mName, 0, mFactory); 给你建DBB, 直接用mContext.openOrCreateDatabase(mName, 0, mFactory)建DBB.如何建如何建Table.继承了 SQLiteOpenHandler,在抽象方法 onCreate 里面,实现建立 Table.public void onCreate(SQLiteDatabase db) db.execSQL(D

5、ICTIONARY_TABLE_CREATE); DICTIONARY_TABLE_CREATE: create 等建 Table 语句。private static final String DICTIONARY_TABLE_CREATE = “CREATE TABLE “ + DICTIONARY_TABLE_NAME + “ (“ + KEY_WORD + “ TEXT, “ + 4KEY_DEFINITION + “ TEXT);“; 当同时出现下面 2 种情况,onCreate 自动执行。 1, 当数据库里没有DATABASE_NAME 对应的DB2, 用户自己调用 myDbOpen

6、Helper.getWritableDatabase() 或者 myDbOpenHelper.getReadableDatabase()如果当数据库里有了DATABASE_NAME 对应的DB,则即使你调用上面2 所说的两个方法,也不会执行OnCreate方法。2, 如果你使用继承如果你使用继承 SQLiteOpenHelper 这个类,你就会这个类,你就会想想C.怎么从无到有,建立一个怎么从无到有,建立一个table呢?呢?D.怎么操作怎么操作table呢,比如:增,删,改,查等?呢,比如:增,删,改,查等?E. Activity怎么获得操作数据库而得到的怎么获得操作数据库而得到的data呢

7、?呢?下面,就来给我一一解答:F.怎么从无到有,建立一个怎么从无到有,建立一个table呢?呢?当你继承SQLiteOpenHelper 这个类,就必须实现两个方法,onCreate /onUpgrade, 以及自身的构造器。创建DB在继承SQLiteOpenHelper的用户自己的构造器内,详细见A,如何建DBOncreate,创建Table,激活条件,建立自定义类对象比如 myDBOnpenHelper(继承自SQLiteOpenHelper),调用myDbOpenHelper.getWritableDatabase();这样,才能执行onCreate方法,从而创建数据库。红色部分可能错误

8、理解了:原因如下Notice that the classs constructor calls the superclasss constructor with the name of the table. DatabaseHelper(Context context) 5super(context, DATABASE_NAME, null, DATABASE_VERSION);The superclass will call the onCreate() method only if the table does not exist in the database.看来,oncreate方

9、法会在调用构造器时,如果不存在DATABASE_NAME,就自动执行吧,而且只在开始时,执行一次,因为以后,这个数据库DATABASE_NAME就一直存在了,除非你删,所以,oncreate方法就不会用了。Eclipse里面直接检验:结果:发现发现 ProPro Android2Android2 里面说的是错的,里面说的是错的, 我红色的自己写的是正确的。我红色的自己写的是正确的。即OnCreate的执行trigger是,3, 当数据库里没有DATABASE_NAME 对应的DB4, 用户自己调用 myDbOpenHelper.getWritableDatabase() 或者 myDbOpen

10、Helper.getReadableDatabase()如果当数据库里有了DATABASE_NAME 对应的DB,则即使你调用上面2 所说的两个方法,也不会执行OnCreate方法。G.怎么操作怎么操作table呢,比如:增,删,改,查等?呢,比如:增,删,改,查等?在第一步创建table时,我们得到对象 SQLiteDatabase mDatabase = myDbOpenHelper.getWritableDatabase();增:mDatabase.insert()删:mDatabase.delete()改:mDatabase.update()查:mDatabase.query()H.

11、Activity怎么获得操作数据库而得到的怎么获得操作数据库而得到的data呢?呢?通过 Cursor mCursor = mSqLiteDatabase.query(TABLE_NAME, columns,null, null, null, null, null);A, 得到rows:int rows = mCursor.getCount();B, 游标归零: mCursor.moveToFirst(); C, 循环取值:6if (!mCursor.isLast() id = mCursor.getInt(0); /拿到_id,下面的第一个; title = mCursor.getStrin

12、g(1);mCursor.moveToNext();D, 赋值给你的变量。2,利用别的方法来操作利用别的方法来操作 Sqlite 数据库。数据库。如果我不想用继承 SQLOpenHelper 来创建数据库呢? 用public abstract SQLiteDatabase openOrCreateDatabase(String name,int mode, CursorFactory factory);public abstract File getDatabasePath(String name);public abstract boolean deleteDatabase(String name); 删除DB其实上面这些方法说白了,还是从SQLiteDatabase来的。怎么操作怎么操作table呢,比如:增,删,改,查等?呢,比如:增,删,改,查等?一样,都是靠 SQLiteDatabase.query /delete/update3,最原始办法最原始办法 execSQL 创建修改数据库创建修改数据库如果你很怀念原始的 sql 创建方法, 那么 可以用SQLiteDatabase下面的方法, /* Execute a single SQL statement tha

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 行业资料 > 其它行业文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号