package edu.minggo.chat.database;
import java.util.ArrayList;
import java.util.List;
import android.content.ContentUris;
import android.content.ContentValues;
import android.content.Context;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.graphics.BitmapFactory;
import android.net.Uri;
import edu.minggo.chat.control.BluetoothChatService;
import edu.minggo.chat.database.MyProviderMetaData.UserTableMetaData;
import edu.minggo.chat.model.MyPhoto;
import edu.minggo.chat.model.MyPhoto.MyPhotoTable;
import edu.minggo.chat.model.User;
public class DataBaseOperator {
/**
* �����û���Ϣ
* @param context
* @param values ��װ�õ�����
* @return
*/
public static boolean insertData(Context context,ContentValues values){
try {
context.getContentResolver().insert(UserTableMetaData.CONTENT_URI, values);
return true;
} catch (Exception e) {
return false;
}
}
/**
* ��ѯ�û���Ϣ
* @param context
* @param selection ��ѯ�����
* @param args ��ѯ�IJ���
* @return userList �û��б�
*/
public static List<User> quryData(Context context,String selection,String[] args){
List<User> userList = new ArrayList<User>();
Cursor c = context.getContentResolver().query(MyProviderMetaData.UserTableMetaData.CONTENT_URI, null, selection, args, UserTableMetaData.USER_NAME);
while(c.moveToNext()){
User user = new User();
user.setUsername(c.getString(c.getColumnIndex(UserTableMetaData.USER_NAME)));
user.setAge(c.getString(c.getColumnIndex(UserTableMetaData.USER_AGE)));
user.setEmail(c.getString(c.getColumnIndex(UserTableMetaData.USER_EMAIL)));
user.setHobby(c.getString(c.getColumnIndex(UserTableMetaData.USER_HOBBY)));
user.setIntroduce(c.getString(c.getColumnIndex(UserTableMetaData.USER_INTRODUCE)));
user.setMotto(c.getString(c.getColumnIndex(UserTableMetaData.USER_MOTTO)));
user.setPersonkind(c.getString(c.getColumnIndex(UserTableMetaData.USER_PERSONKIND)));
user.setPhoto(BitmapFactory.decodeFile(c.getString(c.getColumnIndex(UserTableMetaData.USER_ICON))));
user.setProvince(c.getString(c.getColumnIndex(UserTableMetaData.USER_PROVINCE)));
user.setSex(c.getString(c.getColumnIndex(UserTableMetaData.USER_SEX)));
user.setTelephone(c.getString(c.getColumnIndex(UserTableMetaData.USER_TELEPHONE)));
user.setUserid(c.getLong(c.getColumnIndex(UserTableMetaData._ID)));
user.setPassword(c.getString(c.getColumnIndex(UserTableMetaData.USER_PASSWORD)));
user.setLoginname(c.getString(c.getColumnIndex(UserTableMetaData.USER_LOGINNAME)));
user.setPicpath(c.getString(c.getColumnIndex(UserTableMetaData.USER_ICON)));
userList.add(user);
}
c.close();
return userList;
}
/**
* ��ѯ���ݿ��е��û��������Ϣ
* @param context
* @param selection
* @param args
* @return ����е�ÿ��ͼƬ��Ϣ
*/
public static List<MyPhoto> quryPhotos(Context context){
List<MyPhoto> photoList = new ArrayList<MyPhoto>();
DatabaseHelper dbHelper = new DatabaseHelper(context,MyProviderMetaData.DATABASE_NAME);
SQLiteDatabase db = dbHelper.getReadableDatabase();
Cursor cursor = db.query(MyPhoto.MyPhotoTable.TABLE_NAME, null, MyPhoto.MyPhotoTable.USER_NAME+"=?", new String[]{BluetoothChatService.nowuser.getLoginname()},
null, null,MyPhotoTable.PHOTO_TIME+" desc");
while(cursor.moveToNext()){
MyPhoto photo = new MyPhoto();
photo.setTime(cursor.getString(cursor.getColumnIndex(MyPhoto.MyPhotoTable.PHOTO_TIME)));
photo.setPhotoDes(cursor.getString(cursor.getColumnIndex(MyPhoto.MyPhotoTable.PHOTO_DESC)));
photo.setPicPath(cursor.getString(cursor.getColumnIndex(MyPhoto.MyPhotoTable.PHOTO_PATH)));
photo.setMyphoto(BitmapFactory.decodeFile(cursor.getString(cursor.getColumnIndex(MyPhoto.MyPhotoTable.PHOTO_PATH))));
photoList.add(photo);
}
db.close();
cursor.close();
return photoList;
}
/**
* ��ȡ���ͼƬ����
* @param context
* @return
*/
public static int getSizePhotos(Context context){
DatabaseHelper dbHelper = new DatabaseHelper(context,MyProviderMetaData.DATABASE_NAME);
SQLiteDatabase db = dbHelper.getReadableDatabase();
Cursor cursor = db.query(MyPhoto.MyPhotoTable.TABLE_NAME, null, MyPhoto.MyPhotoTable.USER_NAME+"=?", new String[]{BluetoothChatService.nowuser.getLoginname()},
null, null,MyPhotoTable.PHOTO_TIME+" desc");
return cursor.getCount();
}
/**
* ���������Ϣ
* @param context
* @return
*/
public static boolean insertPhoto(Context context,MyPhoto myphoto){
ContentValues values = new ContentValues();
values.put(MyPhotoTable.USER_NAME, myphoto.getUsername());
values.put(MyPhotoTable.PHOTO_TIME,myphoto.getTime());
values.put(MyPhotoTable.PHOTO_PATH,myphoto.getPicPath());
values.put(MyPhotoTable.PHOTO_DESC,myphoto.getPhotoDes());
DatabaseHelper dbHelper = new DatabaseHelper(context,MyProviderMetaData.DATABASE_NAME);
SQLiteDatabase db = dbHelper.getWritableDatabase();
if(db.insert(MyPhoto.MyPhotoTable.TABLE_NAME, null, values)>0){
db.close();
return true;
}else{
db.close();
return false;
}
}
/**
* ɾ��ͼƬ
* @param context
* @param photo
* @return
*/
public static boolean deletePhoto(Context context,MyPhoto photo){
DatabaseHelper dbHelper = new DatabaseHelper(context,MyProviderMetaData.DATABASE_NAME);
SQLiteDatabase db = dbHelper.getWritableDatabase();
if(db.delete(MyPhoto.MyPhotoTable.TABLE_NAME, MyPhoto.MyPhotoTable.PHOTO_PATH+"=?", new String[]{photo.getPicPath()})>0){
db.close();
return true;
}else{
db.close();
return true;
}
}
/**
* �����û���Ϣ(ֻ��д�˸���ID)
* @param context
* @param selection
* @param args
* @param ID
* @param values
* @return
*/
public static boolean updateData(Context context,String selection,String[] args,long ID,ContentValues values){
Uri uri = ContentUris.withAppendedId(UserTableMetaData.CONTENT_URI, ID);
int count = context.getContentResolver().update(uri, values, selection,args );
if(count>0){
return true;
}else{
return false;
}
}
/**
* �����û���Ϣ
* @param context
* @param selection
* @param args
* @param ID
* @param values
* @return
*/
public static boolean updateData(Context context,String selection,String[] args,ContentValues values){
Uri uri = UserTableMetaData.CONTENT_URI;
int count = context.getContentResolver().update(uri, values, selection,args );
if(count>0){
return true;
}else{
return false;
}
}
/**
* ɾ���û���Ϣ(ֻ��д��ɾ��ID)
* @param context
* @param ID
* @return
*/
public static boolean deleteData(Context context,long ID){
Uri uri = ContentUris.withAppendedId(UserTableMetaData.CONTENT_URI, ID);
int count = context.getContentResolver().delete(uri,null,null );;
if(count>0){
return true;
}else{
return false;
}
}
}