2013-09-25 2 views
0

안녕하세요 누군가가 데이터베이스에 arraylist 값을 삽입하는 방법을 올바른 방향으로 나를 가리킬 수 있습니다. 나는 다음과 같이이 값에 대한 POJO 클래스 생성안드로이드 : 데이터베이스에 Arraylist 값 삽입

ArrayList<HashMap<String, String>> achieve_val = new ArrayList<HashMap<String, String>>(); 
    ArrayList<HashMap<String, String>> achieve_vol = new ArrayList<HashMap<String, String>>(); 

HashMap<String, String> Achiev_Vol_map = new HashMap<String, String>(); 
    Achiev_Vol_map.put(PRODUCT_CAKE, Achieve_Vcake); 
    Achiev_Vol_map.put(PRODUCT_YEASTEXTRACT, Achieve_Vyeastextract); 
    . 
    . 
    . 
    achieve_vol.add(Achiev_Vol_map); 

: 나는 두 개의 ArrayList를 다음과 같이이

public class ProductCategory { 
     ArrayList<HashMap<String, String>> achieve_val,achieve_vol ; 

     public ArrayList<HashMap<String, String>> getAchieve_val() { 
      return achieve_val;} 
     public void setAchieve_val(ArrayList<HashMap<String, String>> achieve_val) { 
      this.achieve_val = achieve_val;} 

     public ArrayList<HashMap<String, String>> getAchieve_vol() { 
      return achieve_vol;} 
     public void setAchieve_vol(ArrayList<HashMap<String, String>> achieve_vol) { 
      this.achieve_vol = achieve_vol;} 

/**my constructor**/ 
     public ProductCategory(ArrayList<HashMap<String, String>> achieve_val, 
       ArrayList<HashMap<String, String>> achieve_vol) { 
      super(); 
      this.achieve_val = achieve_val; 
      this.achieve_vol = achieve_vol;}} 

내가 아래로 내 데이터베이스 어댑터에이 값을 전달하고을

dbHelper.open(); 
dbHelper.topinchartsRecord(new ProductCategory(achieve_val,achieve_vol)); 

이제 내 데이터베이스 adpater에서 그 vlaues에 액세스하고 데이터베이스에 삽입하는 방법을 잘 모르겠다. 다음과 같이 수행하십시오.

답변

0

4,는 방법이 방법으로 해시 맵의

public void topinchartsRecord(ProductCategory productCategory) { 

     try{ 
      insertRecords(productCategory.getAchieve_val(),"tableNameForThisValues"); 
      insertRecords(productCategory.getAchieve_vol(),"tableNameForThisValues"); 
     }catch (Exception e) { 
     } 

    } 

패스의 ArrayList에서이 방법의 희망이 당신을 도울

public void insertRecords(ArrayList<HashMap<String, String>> data, 
      String tableName) { 
     if (data != null && data.size() > 0) { 

      ContentValues con = new ContentValues(); 
      db.beginTransaction(); 

      for (int i = 0; i < data.size(); i++) { 
       con.clear(); 
       HashMap<String, String> row = data.get(i); 
       Iterator<String> it = row.keySet().iterator(); 

       while (it.hasNext()) { 

        String columnName = it.next(); 
        con.put(columnName, row.get(columnName)); 
       } 

       db.insertWithOnConflict(tableName, null, con, 
         SQLiteDatabase.CONFLICT_IGNORE); 

      } 
      db.setTransactionSuccessful(); 
      db.endTransaction(); 
     } 
    } 

을 시도하고 테이블의 이름은 데이터베이스에 삽입합니다.

+0

안녕하세요, 내 topincharts 메서드에서 메서드를 넣어야합니까? 어떻게 귀하의 메서드를 호출합니까 – teekib

+0

나는 게시물을 편집하고 알리십시오 –

+0

안녕하세요, 내 테이블에 데이터가 표시되지 않습니다, 그 삽입하지,이 문자열을 변경할 필요가 = column.name = it.next(); con.put (columnName, row.get (columnName)); ??? 또는 .... – teekib

관련 문제