FriendSearchDBAdapter.java :  » UnTagged » android-sns » com » android » sns » friend » Android Open Source

Android Open Source » UnTagged » android sns 
android sns » com » android » sns » friend » FriendSearchDBAdapter.java
package com.android.sns.friend;

import java.util.ArrayList;

import com.android.sns.friend.model.FriendModel;

import android.content.ContentValues;
import android.content.Context;
import android.database.Cursor;
import android.database.SQLException;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteDatabase.CursorFactory;
import android.database.sqlite.SQLiteException;
import android.database.sqlite.SQLiteOpenHelper;
import android.util.Log;

public class FriendSearchDBAdapter {
  private static final String DATABASE_NAME = "friend.db";
  private static final int DATABASE_VERSION = 1;
  private static final String DATABASE_TABLE = "TB_LOCAL_MEMBER";
  private static final String TO_MEMBER_SEQ = "TO_MEMBER_SEQ";
  private static final String USER_NAME = "USER_NAME";
  private static final String USER_ID = "USER_ID";
  
  private SQLiteDatabase db;
  private final Context context;
  private dbOpenHelper dbHelper;
  
  /**
   * Database 
   */
  public FriendSearchDBAdapter(Context context){
    this.context = context;
    dbHelper = new dbOpenHelper(context, DATABASE_NAME, null, DATABASE_VERSION);
  }
  
  public void open() throws SQLiteException {
    try{
      db = dbHelper.getWritableDatabase();
    } catch(SQLiteException e){
      db = dbHelper.getReadableDatabase();
    }        
  }
  
  public void close(){
    db.close();
  }
  
  public ArrayList<FriendModel> selectSearchList(String condition){
    ArrayList<FriendModel> result = null;
    String[] columns = {TO_MEMBER_SEQ, USER_NAME, USER_ID};
    Cursor cursor = db.query(DATABASE_TABLE, columns, condition, null, null, null, null);
    
    cursor.requery();
    
    if(cursor.moveToFirst()){
      result = new ArrayList<FriendModel>();
      do{
        String member_seq = cursor.getString(cursor.getColumnIndex(TO_MEMBER_SEQ));
        String user_id = cursor.getString(cursor.getColumnIndex(USER_ID));
        String user_nm = cursor.getString(cursor.getColumnIndex(USER_NAME));
        
        FriendModel model = new FriendModel();
        model.setTo_member_seq(member_seq);
        model.setUser_id(user_id);
        model.setUser_nm(user_nm);
        
        result.add(model);
      }while(cursor.moveToNext());
    }
    cursor.close();
    return result;
  }
  
  public long deleteFriend(ArrayList param){
    long result = 1;
    db.beginTransaction();
    String condition = "";
    if(param.size() > 0){
      condition += TO_MEMBER_SEQ + " NOT IN (";
      for(int i=0; i < param.size(); i++){
        FriendModel model = (FriendModel)param.get(i);
        if(i != 0){
          condition += ",";
        }
        condition += model.getTo_member_seq();
      }
      condition += ")";
    }
    
    db.delete(DATABASE_TABLE, condition, null);
    
    db.setTransactionSuccessful();
    db.endTransaction();
    return result;
  }
  
  public long insertFriend(ArrayList param){
    long result = 1;
    ContentValues values= null;
    db.beginTransaction();
    if(param.size() > 0){
      for(int i=0; i < param.size(); i++){
        FriendModel model  = (FriendModel) param.get(i);
        int cnt = 0;
        String[] columns = {"count(*) as CNT"};
        String condition = TO_MEMBER_SEQ + " = " + model.getTo_member_seq();

        Cursor cursor = db.query(DATABASE_TABLE, columns, condition, null, null, null, null);

        if(( cursor.getCount() ==00 ) || !cursor.moveToFirst()){
          throw new SQLException(" .");
        }
        
        cnt = cursor.getInt(cursor.getColumnIndex("CNT"));
//        Log.i("cnt","" + cnt);
//        Log.i("getTo_member_seq","" + model.getTo_member_seq());
        cursor.close();

        if(cnt < 1  && model.getTo_member_seq()!=null){
          values = new ContentValues();
          
          values.put(TO_MEMBER_SEQ, model.getTo_member_seq());
          values.put(USER_NAME, model.getUser_nm());
          values.put(USER_ID, model.getUser_id());
          result = result + db.insert(DATABASE_TABLE, null, values);
        }
      }
    }
    db.setTransactionSuccessful();
    db.endTransaction();
    return result;
  }

  public static class dbOpenHelper extends SQLiteOpenHelper {
    private static final String DATABASE_CREATE = "create table TB_LOCAL_MEMBER" + 
     " (TO_MEMBER_SEQ INTEGER, USER_ID VARCHAR(100), USER_NAME VARCHAR(100) ); ";
    
    private static final String DATABASE_DELETE = "DROP TABLE IF EXISTS TB_LOCAL_MEMBER";
    
    public dbOpenHelper(Context context, String name,
        CursorFactory factory, int version) {
      super(context, name, factory, version);
    }

    public void onCreate(SQLiteDatabase db) {
      db.execSQL(DATABASE_CREATE);
    }

    public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
      // TODO Auto-generated method stub
      db.execSQL(DATABASE_DELETE);
      onCreate(db);
    }
    
  }
}
java2s.com  | Contact Us | Privacy Policy
Copyright 2009 - 12 Demo Source and Support. All rights reserved.
All other trademarks are property of their respective owners.