RecordOperator.java :  » Game » campusrichman » sysu » androidclub » campusrichman » dataoper » Android Open Source

Android Open Source » Game » campusrichman 
campusrichman » sysu » androidclub » campusrichman » dataoper » RecordOperator.java
package sysu.androidclub.campusrichman.dataoper;

import java.io.ByteArrayInputStream;
import java.io.ByteArrayOutputStream;
import java.io.IOException;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;
import java.io.StreamCorruptedException;
import java.util.Calendar;
import java.util.Hashtable;

import sysu.androidclub.campusrichman.mainlogic.Logicmain;
import android.R.integer;
import android.content.ContentValues;
import android.content.Context;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteOpenHelper;
import android.database.sqlite.SQLiteDatabase.CursorFactory;

/**
 * <b>RecordOerator</b>
 * 
 * @author RR
 *
 */
public class RecordOperator {
  private SQLiteDatabase mSqLiteDatabase = null;
  private DataBaseOperateHelper mBaseOperateHelper = null;
  private Context mContext;
  private static final String ID = "ID";
  private static final String DATE = "DATE";
  private static final String RECORDDATA = "RECORDDATA";
  private static final String TABLE = "CAMPUSRICHMAN";
  private static final String CREATE_DB = "CREATE TABLE "+TABLE
  + " ("+ID+" INTEGER PRIMARY KEY autoincrement," + DATE +" DATETIME,"
  + RECORDDATA+ " BLOB)";
  
  /**
   * 
   * @param mContext
   */
  public RecordOperator(Context mContext)
  {
    this.mContext = mContext;
  }
  
  /**
   * 
   */
  public void open()
  {
    mBaseOperateHelper = new DataBaseOperateHelper(mContext, null, 2);
    mSqLiteDatabase = mBaseOperateHelper.getWritableDatabase();
  }
  
  /**
   * 
   */
  public void close()
  {
    mBaseOperateHelper.close();
  }
  
  /**
   * 
   * @param maindata
   * @return
   */
  public long insertRecord(Logicmain maindata)
  {
    ByteArrayOutputStream bao = new ByteArrayOutputStream();
    ObjectOutputStream oos;
    try {
      oos = new ObjectOutputStream(bao);
      oos.writeObject(maindata);
      oos.flush();
    } catch (IOException e) {
      // TODO Auto-generated catch block
      e.printStackTrace();
      return -1;
    }
    ContentValues cv = new ContentValues();
    cv.put(DATE, Calendar.getInstance().getTime().toLocaleString());
    cv.put(RECORDDATA,bao.toByteArray());
    return mSqLiteDatabase.insert(TABLE, ID, cv);
  }
  
  /**
   * 
   * @param id
   * @return
   */
  private boolean deleteData(int id)
  {
    return mSqLiteDatabase.delete(TABLE, ID+"="+id, null)>0;
  }
  
  /**
   * 
   * @return
   */
  private Cursor getAllData()
  {
    Cursor mCursor = mSqLiteDatabase.query(true, TABLE, new String[]{ID,DATE,RECORDDATA},null, null,null, null, null, null);
    return mCursor;
  }
  
  /**
   * 
   * @param id
   * @return
   */
  private Cursor getData(int id)
  {
    Cursor mCursor = mSqLiteDatabase.query(true, TABLE, new String[]{ID,DATE,RECORDDATA},ID+"="+id, null,null, null, null, null);
    if (mCursor!=null) {
      mCursor.moveToFirst();
    }
    return mCursor;
  }
  
  /**
   * 
   * @return
   */
  public Hashtable<Integer, String> getAllRecordInfo()
  {
    Hashtable<Integer, String> table = new Hashtable<Integer, String>();
    Cursor mCursor =getAllData();
    while (mCursor.moveToNext()) {
      table.put(mCursor.getInt(0), mCursor.getString(1));
    }
    return table;
  }
  
  /**
   * IDlogicmain
   * @param id
   * @return
   */
  public Logicmain getMainData(int id)
  {
    Cursor mCursor = getData(id);
    if (mCursor!=null) {
      mCursor.moveToFirst();
      ByteArrayInputStream in = new ByteArrayInputStream(mCursor.getBlob(2));
       ObjectInputStream ois;
      try {
        ois = new ObjectInputStream(in);
        return (Logicmain)ois.readObject();
      } catch (StreamCorruptedException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
        return null;
      } catch (IOException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
        return null;
      } catch (ClassNotFoundException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
        return null;
      }
       
    }
    return null;
  }
  /**
   * 
   * @param id
   * @return
   */
  public boolean deleteRecordData(int id)
  {
    return deleteData(id);
  }
  /**
   * <b>DataBaseOperateHelper</b>
   * 
   * @author RR
   *
   */
  public class DataBaseOperateHelper extends SQLiteOpenHelper
  {
    public DataBaseOperateHelper(Context context,CursorFactory factory,int version)
    {
      super(context, "CampusRichManRecord.db", factory, version);
    }

    @Override
    public void onCreate(SQLiteDatabase db) {
      db.execSQL(CREATE_DB);
      
    }

    @Override
    public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
      db.execSQL("DROP TABLE IF EXISTS notes");
      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.