2016-05-20 6 views
1

私はSQLite DBを構築しています。テーブルの1つは用語と定義の2つの列で構成されています。SQLite DBクエリ

私の質問は:ペア用語 - 定義は、その後の活動にデータを挿入することができるようにするために返されるためには、どのように私は(用語とデータがExpandableListViewであり、DBを照会することができ、用語はキー、データ、値)です。ここで

は、これまでのところ、データ・ソースのコードです:

public class TermDataSource extends DAO { 

//constants 
public static final String TABLE_NAME = "terms"; 
public static final String TERM = "term"; 
public static final String DEFINITION = "definition"; 

//columns in the table 
public static final int FIELD_ID_ID = 0; 
public static final int FIELD_ID_TERM = 1; 
public static final int FIELD_ID_DEFINITION = 2; 

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

private String [] selectFields = {_ID, TERM, DEFINITION}; 

public Cursor getTermsData(){ 
    SQLiteDatabase db = this.getReadableDatabase(); 
    Cursor cursor = db.query(TABLE_NAME, selectFields, null, null, null, null, null); 

    return cursor; 
} 
public List<Term> getTerms(){ 

    SQLiteDatabase db = this.getReadableDatabase(); 
    Cursor cursor = db.query(TABLE_NAME, selectFields, null, null, null, null, null); 
    List<Term> terms = new ArrayList<Term>(); 

    if(cursor!=null){ 

     Term term = null; 
     while(cursor.moveToNext()){ 
      term = getTermFromCursor(cursor); 
      terms.add(term); 
     } 
     cursor.close(); 
    } 
    db.close(); 
    return terms; 
} 

private Term getTermFromCursor (Cursor cursor){ 
    Term term = new Term(); 
    term.setTermId(cursor.getInt(FIELD_ID_ID)); 
    term.setTerm(cursor.getString(FIELD_ID_TERM)); 
    term.setDefinition(cursor.getString(FIELD_ID_DEFINITION)); 

    return term; 
} 
} 
+0

手段あなたが特定の値を_termとdefinition_を使用してデータを取得したいですか? – Piyush

+0

CSVファイルからデータを入力したい – VyaraG

+0

私の答えを見て.. !! –

答えて

2

フォルダres>rawを作成し、そのフォルダ内のyoufile.csvを置きます。

CSVファイルからデータベースにデータを挿入するには、この方法を使用します。

public void insertCSVData(Activity activity, InputStream is, String tableName) { 

    String colunmNames = null, str1 = null; 
    open(); 

    try { 

     BufferedReader buffer = new BufferedReader(new InputStreamReader(is)); 
     String line = ""; 

     String str2 = ");"; 

     db.beginTransaction(); 

     int i = 0; 
     while ((line = buffer.readLine()) != null) { 
      i++; 
      if (i == 1) { 
       colunmNames = line; 
       str1 = "INSERT INTO " + tableName + " (" + colunmNames + ") values ("; 
      } else { 

       StringBuilder sb = new StringBuilder(str1); 
       String[] str = line.split(","); 

       for (int h = 0; h < str.length; h++) { 

        if (h == str.length - 1) { 
         sb.append("'" + str[h] + "'"); 
        } else { 
         sb.append("'" + str[h] + "',"); 
        } 
       } 

       sb.append(str2); 
       db.execSQL(sb.toString()); 
      } 
     } 

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

    } catch (Exception e) { 

     close(); 

     e.printStackTrace(); 
    } 

    close(); 
} 

コール以下のコードによって、この方法:

insertCSVData(Activity.this, getResources().openRawResource(R.raw.yourfile),"Your Table Name"); 
+0

ありがとう!私はテストの後でフィードバックを返すだろう:) – VyaraG

+0

私の喜び..ハッピーコーディング.. !! –

+0

ありがとう、@ジャンキ、それは正常に働いた! – VyaraG