2010-06-14 6 views
34

3 개의 테이블이 포함 된 SQLite 데이터베이스를 만들고 싶습니다. 테이블에 데이터를 추가하고 나중에 사용합니다.android에서 SQLite 데이터베이스 만들기

하지만 데이터베이스를 유지하고 싶습니다. 앱을 처음 설치할 때 데이터베이스가 존재하는지 여부를 확인하고, 존재하는 경우 데이터베이스를 업데이트하고, 그렇지 않으면 데이터베이스를 새로 작성합니다.

더보기 내 앱을 쉽게 만들기 위해 DB 클래스를 만들고 있으므로 데이터베이스 생성을위한 활동을 만들지는 않을 것입니다. 수 조언이있는 경우

, 나와 함께 공유하시기 바랍니다

+0

그래서 ... 질문입니까? – msysmilu

+0

SQLite 사용 방법에 대한 명확한 이해를 제공하는 완벽하고 간단한 설명이 있습니다 [여기를 클릭하여 리소스에 액세스하십시오] (http://www.codeproject.com/Articles/119293/Using-SQLite-Database-with) -기계적 인조 인간) – Devrath

답변

42

더 나은 예는

try { 
    myDB = this.openOrCreateDatabase("DatabaseName", MODE_PRIVATE, null); 

    /* Create a Table in the Database. */ 
    myDB.execSQL("CREATE TABLE IF NOT EXISTS " 
    + TableName 
    + " (Field1 VARCHAR, Field2 INT(3));"); 

    /* Insert data to a Table*/ 
    myDB.execSQL("INSERT INTO " 
    + TableName 
    + " (Field1, Field2)" 
    + " VALUES ('Saranga', 22);"); 

    /*retrieve data from database */ 
    Cursor c = myDB.rawQuery("SELECT * FROM " + TableName , null); 

    int Column1 = c.getColumnIndex("Field1"); 
    int Column2 = c.getColumnIndex("Field2"); 

    // Check if our result was valid. 
    c.moveToFirst(); 
    if (c != null) { 
    // Loop through all Results 
    do { 
    String Name = c.getString(Column1); 
    int Age = c.getInt(Column2); 
    Data =Data +Name+"/"+Age+"\n"; 
    }while(c.moveToNext()); 
    } 
1

왜하지 documentation 또는 SDK와 함께 출하 샘플 코드를 참조하십시오? 샘플에는 링크 된 문서에 설명 된 도우미 클래스를 사용하여 데이터베이스를 작성/업데이트/채우기/읽는 방법에 대한 코드가 있습니다.

5

제거 사이에 데이터베이스를 유지하려면 SD 카드에 데이터베이스를 저장해야합니다. 앱을 삭제하는 순간에는 삭제되지 않는 유일한 장소입니다. 그러나 그 대가로 사용자가 매번 삭제할 수 있습니다.

DB를 SD 카드에 넣으면 더 이상 을 사용할 수 없지만이 클래스의 소스와 아키텍처를 사용하여이 클래스의 생성, 업데이트 및 열기 구현 방법에 대한 아이디어를 얻을 수 있습니다 데이터베이스.

2

이 직접 사용의 전체 소스 코드,

public class CardDBDAO { 

     protected SQLiteDatabase database; 
     private DataBaseHelper dbHelper; 
     private Context mContext; 

     public CardDBDAO(Context context) { 
      this.mContext = context; 
      dbHelper = DataBaseHelper.getHelper(mContext); 
      open(); 

     } 

     public void open() throws SQLException { 
      if(dbHelper == null) 
       dbHelper = DataBaseHelper.getHelper(mContext); 
      database = dbHelper.getWritableDatabase(); 
     } 

    } 



    public class DataBaseHelper extends SQLiteOpenHelper { 

     private static final String DATABASE_NAME = "mydbnamedb"; 
     private static final int DATABASE_VERSION = 1; 

     public static final String CARDS_TABLE = "tbl_cards"; 
     public static final String POICATEGORIES_TABLE = "tbl_poicategories"; 
     public static final String POILANGS_TABLE = "tbl_poilangs"; 

     public static final String ID_COLUMN = "id"; 

     public static final String POI_ID = "poi_id"; 
     public static final String POICATEGORIES_COLUMN = "poi_categories"; 

     public static final String POILANGS_COLUMN = "poi_langs"; 

     public static final String CARDS = "cards"; 
     public static final String CARD_ID = "card_id"; 
     public static final String CARDS_PCAT_ID = "pcat_id"; 

     public static final String CREATE_PLANG_TABLE = "CREATE TABLE " 
       + POILANGS_TABLE + "(" + ID_COLUMN + " INTEGER PRIMARY KEY," 
       + POILANGS_COLUMN + " TEXT, " + POI_ID + " TEXT)"; 

     public static final String CREATE_PCAT_TABLE = "CREATE TABLE " 
       + POICATEGORIES_TABLE + "(" + ID_COLUMN + " INTEGER PRIMARY KEY," 
       + POICATEGORIES_COLUMN + " TEXT, " + POI_ID + " TEXT)"; 

     public static final String CREATE_CARDS_TABLE = "CREATE TABLE " 
       + CARDS_TABLE + "(" + ID_COLUMN + " INTEGER PRIMARY KEY," + CARD_ID 
       + " TEXT, " + CARDS_PCAT_ID + " TEXT, " + CARDS + " TEXT)"; 

     private static DataBaseHelper instance; 

     public static synchronized DataBaseHelper getHelper(Context context) { 
      if (instance == null) 
       instance = new DataBaseHelper(context); 
      return instance; 
     } 

     private DataBaseHelper(Context context) { 
      super(context, DATABASE_NAME, null, DATABASE_VERSION); 
     } 

     @Override 
     public void onOpen(SQLiteDatabase db) { 
      super.onOpen(db); 
      if (!db.isReadOnly()) { 
       // Enable foreign key constraints 
       // db.execSQL("PRAGMA foreign_keys=ON;"); 
      } 
     } 

     @Override 
     public void onCreate(SQLiteDatabase db) { 
      db.execSQL(CREATE_PCAT_TABLE); 
      db.execSQL(CREATE_PLANG_TABLE); 
      db.execSQL(CREATE_CARDS_TABLE); 
     } 

     @Override 
     public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) { 

     } 
    } 




    public class PoiLangDAO extends CardDBDAO { 

      private static final String WHERE_ID_EQUALS = DataBaseHelper.ID_COLUMN 
        + " =?"; 

      public PoiLangDAO(Context context) { 
       super(context); 
      } 

      public long save(PLang plang_data) { 

       ContentValues values = new ContentValues(); 
       values.put(DataBaseHelper.POI_ID, plang_data.getPoi_id()); 
       values.put(DataBaseHelper.POILANGS_COLUMN, plang_data.getLangarr()); 

       return database 
         .insert(DataBaseHelper.POILANGS_TABLE, null, values); 
      } 

      public long update(PLang plang_data) { 
       ContentValues values = new ContentValues(); 
       values.put(DataBaseHelper.POI_ID, plang_data.getPoi_id()); 
       values.put(DataBaseHelper.POILANGS_COLUMN, plang_data.getLangarr()); 

       long result = database.update(DataBaseHelper.POILANGS_TABLE, 
         values, WHERE_ID_EQUALS, 
         new String[] { String.valueOf(plang_data.getId()) }); 
       Log.d("Update Result:", "=" + result); 
       return result; 

      } 

      public int deleteDept(PLang plang_data) { 
       return database.delete(DataBaseHelper.POILANGS_TABLE, 
         WHERE_ID_EQUALS, new String[] { plang_data.getId() + "" }); 
      } 

      public List<PLang> getPLangs1() { 
       List<PLang> plang_list = new ArrayList<PLang>(); 
       Cursor cursor = database.query(DataBaseHelper.POILANGS_TABLE, 
         new String[] { DataBaseHelper.ID_COLUMN, DataBaseHelper.POI_ID, 
           DataBaseHelper.POILANGS_COLUMN }, null, null, null, 
         null, null); 

       while (cursor.moveToNext()) { 
        PLang plang_bin = new PLang(); 
        plang_bin.setId(cursor.getInt(0)); 
        plang_bin.setPoi_id(cursor.getString(1)); 
        plang_bin.setLangarr(cursor.getString(2)); 
        plang_list.add(plang_bin); 
       } 
       return plang_list; 
      } 

      public List<PLang> getPLangs(String pid) { 
       List<PLang> plang_list = new ArrayList<PLang>(); 

       String selection = DataBaseHelper.POI_ID + "=?"; 
       String[] selectionArgs = { pid }; 

       Cursor cursor = database.query(DataBaseHelper.POILANGS_TABLE, 
         new String[] { DataBaseHelper.ID_COLUMN, DataBaseHelper.POI_ID, 
           DataBaseHelper.POILANGS_COLUMN }, selection, 
         selectionArgs, null, null, null); 

       while (cursor.moveToNext()) { 
        PLang plang_bin = new PLang(); 
        plang_bin.setId(cursor.getInt(0)); 
        plang_bin.setPoi_id(cursor.getString(1)); 
        plang_bin.setLangarr(cursor.getString(2)); 
        plang_list.add(plang_bin); 
       } 
       return plang_list; 
      } 

      public void loadPLangs(String poi_id, String langarrs) { 
       PLang plangbin = new PLang(poi_id, langarrs); 

       List<PLang> plang_arr = new ArrayList<PLang>(); 
       plang_arr.add(plangbin); 

       for (PLang dept : plang_arr) { 
        ContentValues values = new ContentValues(); 
        values.put(DataBaseHelper.POI_ID, dept.getPoi_id()); 
        values.put(DataBaseHelper.POILANGS_COLUMN, dept.getLangarr()); 
        database.insert(DataBaseHelper.POILANGS_TABLE, null, values); 
       } 
      } 

     } 




     public class PLang { 

      public PLang() { 
       super(); 
      } 

      public PLang(String poi_id, String langarrs) { 
       // TODO Auto-generated constructor stub 

       this.poi_id = poi_id; 
       this.langarr = langarrs; 
      } 

      public int getId() { 
       return id; 
      } 

      public void setId(int id) { 
       this.id = id; 
      } 

      public String getPoi_id() { 
       return poi_id; 
      } 

      public void setPoi_id(String poi_id) { 
       this.poi_id = poi_id; 
      } 

      public String getLangarr() { 
       return langarr; 
      } 

      public void setLangarr(String langarr) { 
       this.langarr = langarr; 
      } 

      private int id; 
      private String poi_id; 
      private String langarr; 

    } 
2
public class MyDatabaseHelper extends SQLiteOpenHelper { 

    private static final String DATABASE_NAME = "MyDb.db"; 

    private static final int DATABASE_VERSION = 1; 

    // Database creation sql statement 
    private static final String DATABASE_CREATE_FRIDGE_ITEM = "create table FridgeItem(id integer primary key autoincrement,f_id text not null,food_item text not null,quantity text not null,measurement text not null,expiration_date text not null,current_date text not null,flag text not null,location text not null);"; 

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

    // Method is called during creation of the database 
    @Override 
    public void onCreate(SQLiteDatabase database) { 
     database.execSQL(DATABASE_CREATE_FRIDGE_ITEM); 
    } 

    // Method is called during an upgrade of the database, 
    @Override 
    public void onUpgrade(SQLiteDatabase database,int oldVersion,int newVersion){ 
     Log.w(MyDatabaseHelper.class.getName(),"Upgrading database from version " + oldVersion + " to " 
         + newVersion + ", which will destroy all old data"); 
     database.execSQL("DROP TABLE IF EXISTS FridgeItem"); 
     onCreate(database); 
    } 
} 



    public class CommentsDataSource { 

    private MyDatabaseHelper dbHelper; 

    private SQLiteDatabase database; 

    public String stringArray[]; 

    public final static String FOOD_TABLE = "FridgeItem"; // name of table 
    public final static String FOOD_ITEMS_DETAILS = "FoodDetails"; // name of table 

    public final static String P_ID = "id"; // pid 
    public final static String FOOD_ID = "f_id"; // id value for food item 
    public final static String FOOD_NAME = "food_item"; // name of food 
    public final static String FOOD_QUANTITY = "quantity"; // quantity of food item 
    public final static String FOOD_MEASUREMENT = "measurement"; // measurement of food item 
    public final static String FOOD_EXPIRATION = "expiration_date"; // expiration date of food item 
    public final static String FOOD_CURRENTDATE = "current_date"; // date of food item added 
    public final static String FLAG = "flag"; 
    public final static String LOCATION = "location"; 
    /** 
    * 
    * @param context 
    */ 
    public CommentsDataSource(Context context) { 
     dbHelper = new MyDatabaseHelper(context); 
     database = dbHelper.getWritableDatabase(); 
    } 

    public long insertFoodItem(String id, String name,String quantity, String measurement, String currrentDate,String expiration,String flag,String location) { 
     ContentValues values = new ContentValues(); 
     values.put(FOOD_ID, id); 
     values.put(FOOD_NAME, name); 
     values.put(FOOD_QUANTITY, quantity); 
     values.put(FOOD_MEASUREMENT, measurement); 
     values.put(FOOD_CURRENTDATE, currrentDate); 
     values.put(FOOD_EXPIRATION, expiration); 
     values.put(FLAG, flag); 
     values.put(LOCATION, location); 
     return database.insert(FOOD_TABLE, null, values); 
    } 

    public long insertFoodItemsDetails(String id, String name,String quantity, String measurement, String currrentDate,String expiration) { 
     ContentValues values = new ContentValues(); 
     values.put(FOOD_ID, id); 
     values.put(FOOD_NAME, name); 
     values.put(FOOD_QUANTITY, quantity); 
     values.put(FOOD_MEASUREMENT, measurement); 
     values.put(FOOD_CURRENTDATE, currrentDate); 
     values.put(FOOD_EXPIRATION, expiration); 
     return database.insert(FOOD_ITEMS_DETAILS, null, values); 

    } 

    public Cursor selectRecords(String id) { 
     String[] cols = new String[] { FOOD_ID, FOOD_NAME, FOOD_QUANTITY, FOOD_MEASUREMENT, FOOD_EXPIRATION,FLAG,LOCATION,P_ID}; 
     Cursor mCursor = database.query(true, FOOD_TABLE, cols, P_ID+"=?", new String[]{id}, null, null, null, null); 
     if (mCursor != null) { 
      mCursor.moveToFirst(); 
     } 
     return mCursor; // iterate to get each value. 
    } 

    public Cursor selectAllName() { 
     String[] cols = new String[] { FOOD_NAME}; 
     Cursor mCursor = database.query(true, FOOD_TABLE, cols, null, null, null, null, null, null); 
     if (mCursor != null) { 
      mCursor.moveToFirst(); 
     } 
     return mCursor; // iterate to get each value. 
    } 

    public Cursor selectAllRecords(String loc) { 
     String[] cols = new String[] { FOOD_ID, FOOD_NAME, FOOD_QUANTITY, FOOD_MEASUREMENT, FOOD_EXPIRATION,FLAG,LOCATION,P_ID}; 
     Cursor mCursor = database.query(true, FOOD_TABLE, cols, LOCATION+"=?", new String[]{loc}, null, null, null, null); 
     int size=mCursor.getCount(); 
     stringArray = new String[size]; 
     int i=0; 
     if (mCursor != null) { 
      mCursor.moveToFirst(); 
      FoodInfo.arrayList.clear(); 
       while (!mCursor.isAfterLast()) { 
        String name=mCursor.getString(1); 
        stringArray[i]=name; 
        String quant=mCursor.getString(2); 
        String measure=mCursor.getString(3); 
        String expir=mCursor.getString(4); 
        String id=mCursor.getString(7); 
        FoodInfo fooditem=new FoodInfo(); 
        fooditem.setName(name); 
        fooditem.setQuantity(quant); 
        fooditem.setMesure(measure); 
        fooditem.setExpirationDate(expir); 
        fooditem.setid(id); 
        FoodInfo.arrayList.add(fooditem); 
        mCursor.moveToNext(); 
        i++; 
       } 
     } 
     return mCursor; // iterate to get each value. 
    } 

    public Cursor selectExpDate() { 
     String[] cols = new String[] {FOOD_NAME, FOOD_QUANTITY, FOOD_MEASUREMENT, FOOD_EXPIRATION}; 
     Cursor mCursor = database.query(true, FOOD_TABLE, cols, null, null, null, null, FOOD_EXPIRATION, null); 
     int size=mCursor.getCount(); 
     stringArray = new String[size]; 
     if (mCursor != null) { 
      mCursor.moveToFirst(); 
      FoodInfo.arrayList.clear(); 
       while (!mCursor.isAfterLast()) { 
        String name=mCursor.getString(0); 
        String quant=mCursor.getString(1); 
        String measure=mCursor.getString(2); 
        String expir=mCursor.getString(3); 
        FoodInfo fooditem=new FoodInfo(); 
        fooditem.setName(name); 
        fooditem.setQuantity(quant); 
        fooditem.setMesure(measure); 
        fooditem.setExpirationDate(expir); 
        FoodInfo.arrayList.add(fooditem); 
        mCursor.moveToNext(); 
       } 
     } 
     return mCursor; // iterate to get each value. 
    } 

    public int UpdateFoodItem(String id, String quantity, String expiration){ 
     ContentValues values=new ContentValues(); 
     values.put(FOOD_QUANTITY, quantity); 
     values.put(FOOD_EXPIRATION, expiration); 
     return database.update(FOOD_TABLE, values, P_ID+"=?", new String[]{id}); 
     } 

    public void deleteComment(String id) { 
     System.out.println("Comment deleted with id: " + id); 
     database.delete(FOOD_TABLE, P_ID+"=?", new String[]{id}); 
     } 

} 
1

모범 사례보고와 안드로이드에 SQLite는 데이터베이스를 사용하는 방법을 이해하려면 [여기]입니다 - Android with sqlite database

알아 두어야 할 클래스가 거의없고 도움이 될만한 클래스가 있습니다. 다음은

테이블 여기

public class ProductTable implements BaseColumns { 
    public static final String NAME = "name"; 
    public static final String PRICE = "price"; 
    public static final String TABLE_NAME = "products"; 

    public static final String CREATE_QUERY = "create table " + TABLE_NAME + " (" + 
     _ID + " INTEGER, " + 
     NAME + " TEXT, " + 
     PRICE + " INTEGER)"; 

    public static final String DROP_QUERY = "drop table " + TABLE_NAME; 
    public static final String SElECT_QUERY = "select * from " + TABLE_NAME; 
} 
0

의 예입니다 테이블을 모델링하고 모델 android.provider.BaseColumns을 즉 것은 코드

에게 DatabaseMyHandler.class

public class DatabaseMyHandler extends SQLiteOpenHelper { 

    private SQLiteDatabase myDataBase; 
    private Context context = null; 
    private static String TABLE_NAME = "customer"; 
    public static final String DATABASE_NAME = "Student.db"; 
    public final static String DATABASE_PATH = "/data/data/com.pkgname/databases/"; 
    public static final int DATABASE_VERSION = 2; 

    public DatabaseMyHandler(Context context) { 
     super(context, DATABASE_NAME, null, DATABASE_VERSION); 
     this.context = context; 
     try { 
      createDatabase(); 
     } catch (IOException e) { 
      e.printStackTrace(); 
     } 
    } 


    @Override 
    public void onCreate(SQLiteDatabase sqLiteDatabase) { 
     myDataBase = sqLiteDatabase; 

    } 

    @Override 
    public void onUpgrade(SQLiteDatabase sqLiteDatabase, int i, int i1) { 

    } 

    //Check database already exists or not 

    private boolean checkDatabaseExists() { 
     boolean checkDB = false; 
     try { 
      String PATH = DATABASE_PATH + DATABASE_NAME; 
      File dbFile = new File(PATH); 
      checkDB = dbFile.exists(); 

     } catch (SQLiteException e) { 

     } 
     return checkDB; 
    } 


    //Create a empty database on the system 
    public void createDatabase() throws IOException { 
     boolean dbExist = checkDatabaseExists(); 

     if (dbExist) { 
      Log.v("DB Exists", "db exists"); 
     } 

     boolean dbExist1 = checkDatabaseExists(); 
     if (!dbExist1) { 
      this.getWritableDatabase(); 
      try { 
       this.close(); 
       copyDataBase(); 
      } catch (IOException e) { 
       throw new Error("Error copying database"); 
      } 
     } 
    } 

    //Copies your database from your local assets-folder to the just created empty database in the system folder 
    private void copyDataBase() throws IOException { 
     String outFileName = DATABASE_PATH + DATABASE_NAME; 
     OutputStream myOutput = new FileOutputStream(outFileName); 
     InputStream myInput = context.getAssets().open(DATABASE_NAME); 

     byte[] buffer = new byte[1024]; 
     int length; 
     while ((length = myInput.read(buffer)) > 0) { 
      myOutput.write(buffer, 0, length); 
     } 
     myInput.close(); 
     myOutput.flush(); 
     myOutput.close(); 
    } 


    //Open Database 
    public void openDatabase() throws SQLException { 
     String PATH = DATABASE_PATH + DATABASE_NAME; 
     myDataBase = SQLiteDatabase.openDatabase(PATH, null, SQLiteDatabase.OPEN_READWRITE); 
    } 

    //for insert data into database 


    public void insertCustomer(String customer_id, String email_id, String password, String description, int balance_amount) { 
     try { 
      openDatabase(); 
      SQLiteDatabase db = this.getWritableDatabase(); 
      ContentValues contentValues = new ContentValues(); 
      contentValues.put("customer_id", customer_id); 
      contentValues.put("email_id", email_id); 
      contentValues.put("password", password); 
      contentValues.put("description", description); 
      contentValues.put("balance_amount", balance_amount); 
      db.insert(TABLE_NAME, null, contentValues); 
     } catch (SQLException e) { 
      e.printStackTrace(); 
     } 
    } 


    public ArrayList<ModelCreateCustomer> getLoginIdDetail(String email_id, String password) { 

     ArrayList<ModelCreateCustomer> result = new ArrayList<ModelCreateCustomer>(); 
     //boolean flag = false; 
     String selectQuery = "SELECT * FROM " + TABLE_NAME + " WHERE email_id='" + email_id + "' AND password='" + password + "'"; 

     try { 
      openDatabase(); 
      Cursor cursor = myDataBase.rawQuery(selectQuery, null); 
      //cursor.moveToFirst(); 


      if (cursor.getCount() > 0) { 
       if (cursor.moveToFirst()) { 
        do { 
         ModelCreateCustomer model = new ModelCreateCustomer(); 
         model.setId(cursor.getInt(cursor.getColumnIndex("id"))); 
         model.setCustomerId(cursor.getString(cursor.getColumnIndex("customer_id"))); 
         model.setCustomerEmailId(cursor.getString(cursor.getColumnIndex("email_id"))); 
         model.setCustomerPassword(cursor.getString(cursor.getColumnIndex("password"))); 
         model.setCustomerDesription(cursor.getString(cursor.getColumnIndex("description"))); 
         model.setCustomerBalanceAmount(cursor.getInt(cursor.getColumnIndex("balance_amount"))); 

         result.add(model); 
        } 
        while (cursor.moveToNext()); 
       } 
       Toast.makeText(context, "Login Successfully", Toast.LENGTH_SHORT).show(); 
      } 

//   Log.e("Count", "" + cursor.getCount()); 
      cursor.close(); 
      myDataBase.close(); 
     } catch (SQLException e) { 
      e.printStackTrace(); 
     } 


     return result; 
    } 

    public void updateCustomer(String id, String email_id, String description, int balance_amount) { 

     try { 
      openDatabase(); 
      SQLiteDatabase db = this.getWritableDatabase(); 
      ContentValues contentValues = new ContentValues(); 
      contentValues.put("email_id", email_id); 
      contentValues.put("description", description); 
      contentValues.put("balance_amount", balance_amount); 

      db.update(TABLE_NAME, contentValues, "id=" + id, null); 

     } catch (SQLException e) { 
      e.printStackTrace(); 
     } 

    } 
} 

고객이다 .class

public class Customer extends AppCompatActivity{ 
    private DatabaseMyHandler mydb; 
    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_customer); 

     mydb = new DatabaseMyHandler(CreateCustomerActivity.this); 
mydb.insertCustomer("1", "[email protected]", "123", "test", 100); 

    } 

} 
0

오늘의 Todo List of Life를 DB에 삽입하고 모든 할 일 목록을 가져 오는 간단한 데이터베이스 예제.

public class MyDatabaseHelper extends SQLiteOpenHelper { 

// Logcat tag 
private static final String LOG = "DatabaseHelper"; 

// Database Version 
private static final int DATABASE_VERSION = 1; 

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

// Table Names 
private static final String TABLE_TODO = "todos"; 

// column names 
private static final String KEY_ID = "id"; 
private static final String KEY_CREATED_AT = "created_at"; 
private static final String KEY_TODO = "todoDescr"; 

// ********************************************************************************************* 
public MyDatabaseHelper(Context context) { 
    super(context, DATABASE_NAME, null, DATABASE_VERSION); 
} 

@Override 
public void onCreate(SQLiteDatabase db) { 

    db.execSQL(CREATE_TABLE_TODO); 


} 

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


    // Create tables again 
    onCreate(db); 
} 

// Creating Table TABLE_TEAM 
String CREATE_TABLE_TODO = "CREATE TABLE " + TABLE_TODO + "(" 
     + KEY_ID + " integer primary key autoincrement, " 
     + KEY_TODO + " text, " 
     + KEY_CREATED_AT + " text" + ")"; 


// insert values of todo 
public boolean InsertTodoDetails(String todo, String createdAt) { 
    SQLiteDatabase db = this.getWritableDatabase(); 
    ContentValues contentValues = new ContentValues(); 
    contentValues.put(KEY_TODO, todo); 
    contentValues.put(KEY_CREATED_AT, createdAt); 


    long rowInserted = db.insert(TABLE_TODO, null, contentValues); 
    db.close(); 
    return true; 
} 


// Select values of todo 
public Cursor GetAllTodoDetails() { 
    SQLiteDatabase db = this.getReadableDatabase(); 


    String query = "SELECT * FROM " + TABLE_TODO; 
    Cursor mcursor = db.rawQuery(query, null); 

    if (mcursor != null) { 
     mcursor.moveToFirst(); 
    } 

    return mcursor; 

} 



} 

나의 활동 기록을 저장하고 얻으려면.

public class MyDbActivity extends AppCompatActivity { 

    @Bind(R.id.edt_todo) 
    EditText edtTodo; 
    @Bind(R.id.btn_save) 
    Button btnSave; 

    MyDatabaseHelper db; 
    @Bind(R.id.btn_getTodo) 
    Button btnGetTodo; 


    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_my_db); 
     ButterKnife.bind(this); 

// creating database object 
     db = new MyDatabaseHelper(this); 


    } 

    @OnClick(R.id.btn_save) 
    public void onViewClicked() { 


     String datetime = ""; 
     try { 
      SimpleDateFormat dateformat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); 
      datetime = dateformat.format(new Date()); 
     } catch (Exception e) { 
      e.printStackTrace(); 
     } 

     db.InsertTodoDetails(edtTodo.getText().toString().trim(), datetime); 

    } 

    @OnClick(R.id.btn_getTodo) 
    public void onGetTodoClicked() { 
     String todos = ""; 
     Cursor TodoList = db.GetAllTodoDetails(); 
     if (TodoList.moveToFirst()) { 
      do { 
       if (todos.equals("")) { 
        todos = TodoList.getString(TodoList.getColumnIndex("todoDescr")); 

       } else { 
        todos = todos + ", " + TodoList.getString(TodoList.getColumnIndex("todoDescr")); 
       } 
       // do what ever you want here 
      } while (TodoList.moveToNext()); 
     } 
     TodoList.close(); 
     Toast.makeText(this, "" + todos, Toast.LENGTH_SHORT).show(); 

    } 
} 
관련 문제