1

データベースを使用する必要がある Android アプリを開発しています。しばらく読んだ後、私は SQLite データベースを使用することに決めました。それをどのように扱うべきかを読み始めましたが、すべての本/チュートリアル/その他... ユーザーが情報を追加できるようにすることで、更新可能なデータベースを開発しています。(日記や走行時間記録アプリ風に)。データベースを作成して (ハードコーディングのように)、クエリを実行するだけです。私のデータベースはユーザー側で更新できません。私はそれが簡単でダミーの方法であるべきだと確信していますが、まだ見つけていません。だから、誰かが私を助けることができれば、それは素晴らしいことです. ;)

ありがとう。アメト。

4

2 に答える 2

1

次のリンクを確認してください: DAO およびコンテンツ プロバイダーを使用した SQLite データベース チュートリアル

必要なクラスは 2 つだけです。

  • データベース クラス (4.3. データベースとデータ モデル):

public class MySQLiteHelper は SQLiteOpenHelper を拡張します {

public static final String TABLE_COMMENTS = "comments";
public static final String COLUMN_ID = "_id";
public static final String COLUMN_COMMENT = "comment";

private static final String DATABASE_NAME = "commments.db";
private static final int DATABASE_VERSION = 1;

// Database creation sql statement
private static final String DATABASE_CREATE = "create table "
        + TABLE_COMMENTS + "(" + COLUMN_ID
        + " integer primary key autoincrement, " + COLUMN_COMMENT
        + " text not null);";

    // Database creation sql statement
private static final String TABLE_CREATE = "CREATE TABLE tablename....."

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

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

@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
    // You don't need this. If you don't change the DATABASE_VERSION value then this method will not be called.
}

}

  • ダオ

public class CommentsDataSource {

// Database fields
private SQLiteDatabase database;
private MySQLiteHelper dbHelper;
private String[] allColumns = { MySQLiteHelper.COLUMN_ID,
        MySQLiteHelper.COLUMN_COMMENT };

public CommentsDataSource(Context context) {
    dbHelper = new MySQLiteHelper(context);
}

public void open() throws SQLException {
    database = dbHelper.getWritableDatabase();
}

public void close() {
    dbHelper.close();
}

public List<Comment> getAllComments() {
    List<Comment> comments = new ArrayList<Comment>();

    Cursor cursor = database.query(MySQLiteHelper.TABLE_COMMENTS,
            allColumns, null, null, null, null, null);

    cursor.moveToFirst();
    while (!cursor.isAfterLast()) {
        Comment comment = cursorToComment(cursor);
        comments.add(comment);
        cursor.moveToNext();
    }
    // Make sure to close the cursor
    cursor.close();
    return comments;
}

private Comment cursorToComment(Cursor cursor) {
    Comment comment = new Comment();
    comment.setId(cursor.getLong(0));
    comment.setComment(cursor.getString(1));
    return comment;
}

}

  • ただし、コンテンツ プロバイダーの例も確認することをお勧めします (8.4. ContentProvider の作成)。まったく複雑ではありません。
于 2012-06-14T20:13:29.310 に答える
0

SQLiteOpenHelper の onCreate メソッドを使用して、データベースの作成に必要な sql を実行できます。SQL は、ハードコーディングするか、ファイルから読み込むことができます。このようにすると、アプリケーションを最初に実行したときにデータベースを初期化できます。

もう 1 つのオプションは、 SQLite Database Browserなどのツールを使用することです。

これは、sqlite データベースの構築に使用できるデスクトップ アプリケーションです。作成したら、デプロイ方法を決定する必要があります。これを試したことはありませんが、リソースフォルダーにバンドルして、インストール後にアプリを最初に実行するときに正しいディレクトリに移動できると思います。

于 2012-06-14T19:56:50.953 に答える