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);
}
}
}
|