在Android应用程序中创建本地数据库

时间:2012-03-01 06:38:59

标签: java android sqlite

基于http://developer.android.com/guide/topics/data/data-storage.html#db,似乎我需要另一个Java类文件(我制作),但现在我遇到了一个相当悲伤的问题:我不知道如何处理它。

我如何在我的主要活动中调用它,它只会创建一次数据库,还是每次运行时都会尝试重新创建数据库?

3 个答案:

答案 0 :(得分:4)

这将首次“创建”数据库。之后,您可以使用该SQLiteOpenHelper类的对象来访问该数据库。请注意,您不必担心数据库的重新创建,如果您使用SQLiteOpenHelper方法,android将负责处理。

转发数据存储示例,您将创建一个对象,然后使用getWriteableDatabase方法获取对数据库的写入权限

DictionaryOpenHelper myDictionary;
myDictionary = new DictionaryOpenHelper(this);
SQLiteDatabase db = myDictionary.getWritableDatabase();

//to enter values in the db
ContentValues values = new ContentValues();
values.put("name","Rhyno");
db.insert(nameOfTable, null, values);

有关更详细的示例,请参阅本教程:http://marakana.com/forums/android/examples/55.html

答案 1 :(得分:2)

只有在它不存在时才会创建。

答案 2 :(得分:0)

SQLiteOpenHelper有两个非常有用的方法:onCreate()和onUpgrade()。

    只有在数据库不存在时才会调用
  1. onCreate()。
  2. 只有当DATABASE_VERSION(在创建SQLiteOpenHelper实例时传递给构造函数)增加时,才会调用
  3. onUpgrade()。
  4. 当DATABASE_VERSION减少或数据库打开时,还有onDowngrade()和onOpen()。

    onCreate()是你想要你的db.execSQL(“CREATE TABLE ....”)首先制作你的表的地方。

    然后,您可以使用SQLiteOpenHandler的实例来执行dbHandler.getWritableDatabase()和dbHandler.getReadableDatabase(),它们会在代码中返回可读或可写的SQLiteDatabase对象。然后,您可以使用writableDb.insert()或readableDB.query()来从数据库中放入和获取内容。