sqlite データベースに事前入力する必要があるため、データベースを操作するにはどうすればよいですか? テーブルを作成していくつかの行を挿入しますか?
3 に答える
2
Android SDK で利用可能な SQLite3 ツールを使用できます。これは、SDK ルートの下の tools フォルダーにあります。
次のディレクトリを PATH に追加します: {SDK root}\tools
コマンド ウィンドウを開く
タイプsqlite3
于 2013-04-01T04:55:46.123 に答える
0
あなたの質問から、あなたは Android でのデータベース処理に慣れていないと思います。DatabaseHandlerクラスとDatabaseHelper ( SQLiteOpenHelperの拡張)を非常に簡単に使用できます。
以下のコードは、このクラスを使用してすべてのデータベース操作を行う方法を非常によく説明しています
import java.util.ArrayList;
import java.util.List;
import android.content.ContentValues;
import android.content.Context;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteDatabase.CursorFactory;
import android.database.sqlite.SQLiteOpenHelper;
public class DatabaseHandler{
private static final int DATABASE_VERSION = 1;
private static final String DATABASE_NAME = "Fruitsdb";
private static final String TABLE_FRUITS = "fruits_table";
private static final String KEY_ID = "id";
private static final String KEY_NAME = "name";
private static final String CREATE_FRUITS_TABLE = "CREATE TABLE " + TABLE_FRUITS + " ("
+ KEY_ID + " INTEGER PRIMARY KEY autoincrement, " + KEY_NAME + " TEXT not null);";
private SQLiteDatabase db;
private final Context ct;
private DatabaseHelper dbhelper;
public DatabaseHandler(Context context){
this.ct=context;
dbhelper=new DatabaseHelper(ct,DATABASE_NAME,null,DATABASE_VERSION);
}
public DatabaseHandler open(){
db=dbhelper.getWritableDatabase();
return this;
}
public void close(){
db.close();
}
private static class DatabaseHelper extends SQLiteOpenHelper{
public DatabaseHelper (Context ct,String fruitname,CursorFactory cf,int ver){
super(ct,fruitname,cf,ver);
}
//this oncreate method is called only once when the database is created
//and this inserts the values into the tables the first time the app is started
@Override
public void onCreate(SQLiteDatabase sqldb) {
sqldb.execSQL(CREATE_FRUITS_TABLE);
List <String> lstfruits=new ArrayList<String>();
lstfruits.add("Orange");
lstfruits.add("Apple");
lstfruits.add("Guava");
lstfruits.add("Grapes");
for(String strFruits:lstfruits){
ContentValues cv=new ContentValues();
cv.put(KEY_NAME, strFruits);
sqldb.insert(TABLE_FRUITS, null, cv);
}
}
@Override
public void onUpgrade(SQLiteDatabase sqldb, int oldVersion, int newVersion) {
sqldb.execSQL("DROP TABLE OF EXISTS"+TABLE_FRUITS);
onCreate(sqldb);
}
}
public long insertEntry(String strFruit){
//write code here of insert and change the return statement
//using sqldb.insert(parameters..);
return -1;
}
public boolean removeEntry(String strFruit){
//write code here of delete a entery and change the return statement
//using sqldb.delete(parameters..);
return true;
}
}
メインのActivity Byからこのクラスを呼び出すことができます
DatabaseHandler dbhandler=new DatabaseHandler(this);
dbhandler.open(); //The database is created and the values are inserted
//here you can do insert, updated ,remove,select operations
dbhandler.close(); // don't forget his one
これは、sqlite3 データベースにアクセスして値を格納する最も簡単な方法です。問題が解決することを願っています。
于 2013-04-01T19:21:50.070 に答える