5

こんにちは、私はAndroidでの開発が初めてで、アプリにデータベースを追加したいと考えていました。

問題は、テーブル全体を一度だけ初期化する方法がわからないことです。

私はたくさんの読書をしましたがonCreate(SQLiteDatabase db)、ヘルパークラスのメソッドのオーバーライドでそれができることがわかりました。

これらは私のデータ フィールドと私のonCreate(SQLiteDatabase db)メソッドです。

public static final String KEY_ROWID = "_id";
public static final String KEY_NAME = "name";
public static final String KEY_EIGHTU = "8u";
public static final String KEY_NINEU = "9u";
public static final String KEY_TENU = "10u";
public static final String KEY_ELEVENU = "11u";
private static final String TAG = "DBAdapter"; 

@Override
public void onCreate(SQLiteDatabase db) {
    db.execSQL(DATABASE_CREATE);        
}

しかし、方法がわからない..何かアイデアはありますか?

主な問題は、初期化したい行が複数あることです。

4

5 に答える 5

4

この方法を試してください:

public class MyDBHelper  
{  
    // Database properties   
    private static final String DATABASE_NAME = "Test.sqlite";   
    private static final String DATABASE_TABLE_NAME = "Table 1";   
    private static final int DATABASE_VERSION = 4;

    //  Table1 properties   
    public static final String KEY_ROWID = "_id";   
    public static final String KEY_NAME = "name";   
    public static final String KEY_EIGHTU = "8u";   
    public static final String KEY_NINEU = "9u";      
    public static final String KEY_TENU = "10u";   
    public static final String KEY_ELEVENU = "11u";  
    private static final String TAG = "DBAdapter";

    // Create Script   
    private static final String DATABASE_CREATE_PLAYER = "CREATE TABLE IF NOT EXISTS " + DATABASE_TABLE_NAME + "( " + KEY_ROWID + " INTEGER, " + KEY_NAME + " TEXT, " + KEY_EIGHTU + " TEXT, " + KEY_NINEU + " TEXT, " + KEY_TENU + " TEXT, " + KEY_ELEVENU + " TEXT);";        
    private final Context m_context;  
    private DatabaseHelper m_dbHelper;   
    public static SQLiteDatabase m_db;   
    public MyDBHelper(Context ctx)  
    {   
        this.m_context = ctx;  
        m_dbHelper = new DatabaseHelper(m_context);  
    }   

    private static class DatabaseHelper extends SQLiteOpenHelper
    {
        DatabaseHelper(Context context)
        {
            super(context, DATABASE_NAME, null, DATABASE_VERSION);
        }

        @Override
        public void onCreate(SQLiteDatabase db)
        {
            db.execSQL(DATABASE_TABLE_NAME);
        }

        @Override
        public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion)
        {
            db.execSQL("DROP TABLE IF EXISTS " + DATABASE_TABLE_NAME );
            onCreate(db);
        }
    }

    //---opens the database---
    public MyDBHelper open() throws SQLException
    {
        m_db = m_dbHelper.getWritableDatabase();
        return this;
    }

    //---closes the database---    
    public void close()
    {
        if (m_db != null)
            m_db.close();
        if (m_dbHelper != null)
            m_dbHelper.close();
    }  
}
于 2013-01-01T06:03:24.123 に答える
0

onCreate()メソッドの前とこの行の後に下の行を書くとprivate static final String TAG = "DBAdapter";、問題が解決します。

private static final String DATABASE_CREATE = "create table mTable1 
                   (_id integer primary key autoincrement, 
                   name text not null, 8u text not null, 9u text not null, 
                   10u text not null, 11u text not null);";
于 2013-01-01T06:03:21.170 に答える
0

コードに入力する場合は、このチュートリアルが役立ちます。これは、14 のビデオ チュートリアルのシリーズです。

http://thenewboston.org/watch.php?cat=6&number=111

プリロードされたデータベースにアクセスしたい場合は、このリンクをチェックしてください。

http://www.reigndesign.com/blog/using-your-own-sqlite-database-in-android-applications/

しかし、どちらもタブレットに必要なコンテンツ プロバイダーの使用には対応していません。しかし、どちらもあなたを始めさせ、それらを学べば、プロバイダーを学ぶことができます.

于 2013-01-01T05:56:27.540 に答える
0
import java.util.ArrayList;
import java.util.List;

import android.content.ContentValues;
import android.content.Context;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteOpenHelper;

public class DatabaseHandler extends SQLiteOpenHelper {

// All Static variables
// Database Version
private static final int DATABASE_VERSION = 1;

// Database Name
private static final String DATABASE_NAME = "contactsManager";

// Contacts table name
private static final String TABLE_CONTACTS = "contacts";

// Contacts Table Columns names
private static final String KEY_ID = "id";
private static final String KEY_NAME = "name";
private static final String KEY_PH_NO = "phone_number";

public DatabaseHandler(Context context) {
    super(context, DATABASE_NAME, null, DATABASE_VERSION);
}

// Creating Tables
@Override
public void onCreate(SQLiteDatabase db) {
    String CREATE_CONTACTS_TABLE = "CREATE TABLE " + TABLE_CONTACTS + "("
            + KEY_ID + " INTEGER PRIMARY KEY," + KEY_NAME + " TEXT,"
            + KEY_PH_NO + " TEXT" + ")";
    db.execSQL(CREATE_CONTACTS_TABLE);
}

// Upgrading database
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
    // Drop older table if existed
    db.execSQL("DROP TABLE IF EXISTS " + TABLE_CONTACTS);

    // Create tables again
    onCreate(db);
}

完全な参照と理解を深めるために、これらのサイトにアクセスすることもできます::

androidhive.info/Sqlite チュートリアル-

于 2013-01-01T06:06:21.437 に答える