package com.example.slidingmenu.yujing.client.database.table; import java.util.ArrayList; import java.util.HashMap; import android.content.ContentValues; import android.database.Cursor; import android.database.sqlite.SQLiteDatabase; import com.example.slidingmenu.yujing.client.database.DatabaseHelper; public class PrivateLetter implements DatabaseHelper.TableCreateInterface { public static String tableName = "PrivateLetter"; public static String _id = "_id"; public static String UID = "UID"; public static String PrivateLetterUID = "PrivateLetter_UID"; public static String PrivateLetterID = "PrivateLetter_ID"; public static String content = "PrivateLetter_Content"; public static String time = "PrivateLetter_Time"; public static String name = "PrivateLetter_Name"; public static String photo = "PrivateLetter_Photo"; public static String isSend = "PrivateLetter_isSend"; private static PrivateLetter privateLetter = new PrivateLetter(); public static PrivateLetter getInstance() { return PrivateLetter.privateLetter; } @Override public void onCreate( SQLiteDatabase db ) { String sql = "CREATE TABLE " + PrivateLetter.tableName + " ( " + "_id integer primary key autoincrement, " + PrivateLetter.UID + " LONG, " + PrivateLetter.PrivateLetterUID + " LONG, " + PrivateLetter.PrivateLetterID + " LONG, " + PrivateLetter.content + " TEXT, " + PrivateLetter.time + " INTEGER, " + PrivateLetter.name + " TEXT, " + PrivateLetter.photo + " TEXT, " + PrivateLetter.isSend + " BOOLEAN " + ");"; db.execSQL( sql ); } @Override public void onUpgrade( SQLiteDatabase db, int oldVersion, int newVersion ) { if ( oldVersion < newVersion ) { String sql = "DROP TABLE IF EXISTS " + PrivateLetter.tableName; db.execSQL( sql ); this.onCreate( db ); } } public static void insertPrivateLetter(DatabaseHelper dbHepler, ContentValues userValues ) { String ID = String.valueOf(userValues.getAsLong(PrivateLetter.PrivateLetterID)); SQLiteDatabase db = dbHepler.getWritableDatabase(); Cursor c = db.query(PrivateLetter.tableName, null, PrivateLetterID+"=?", new String[] {ID}, null, null, null); if(c == null || c.getCount() == 0) { db.insert( PrivateLetter.tableName, null, userValues ); } db.close(); } public static Cursor getAllLetter(DatabaseHelper dbHepler) { SQLiteDatabase db = dbHepler.getReadableDatabase(); Cursor c = db.query(PrivateLetter.tableName, null, null, null, null, null, PrivateLetter.time + " COLLATE LOCALIZED DESC"); return c; } public static int getLetterCount(DatabaseHelper dbHepler) { SQLiteDatabase db = dbHepler.getReadableDatabase(); Cursor c = db.query(PrivateLetter.tableName, null, null, null, null, null, PrivateLetter.time + " COLLATE LOCALIZED DESC"); int count = c.getCount(); c.close(); db.close(); return count; } public static void deletePrivateLetter( DatabaseHelper dbHepler, int _id ) { SQLiteDatabase db = dbHepler.getWritableDatabase(); db.delete( PrivateLetter.tableName, PrivateLetter._id + "=?",new String[] { _id + "" } ); db.close(); } public static void deleteAllPrivateLetter( DatabaseHelper dbHepler ) { SQLiteDatabase db = dbHepler.getWritableDatabase(); db.delete( PrivateLetter.tableName, null, null ); db.close(); } public static HashMap<String, Object> getPrivateLetter( DatabaseHelper dbHepler, int _id ){ SQLiteDatabase db = dbHepler.getReadableDatabase(); HashMap<String, Object> privateLetterMap = new HashMap<String, Object>(); Cursor cursor = db.query( PrivateLetter.tableName, null, PrivateLetter._id + " =? ", new String[]{ _id + "" }, null, null, null); cursor.moveToFirst(); privateLetterMap.put(PrivateLetter.PrivateLetterID, cursor.getLong(cursor.getColumnIndex(PrivateLetter.PrivateLetterID))); privateLetterMap.put(PrivateLetter.PrivateLetterUID, cursor.getLong(cursor.getColumnIndex(PrivateLetter.PrivateLetterUID))); privateLetterMap.put(PrivateLetter.content, cursor.getString(cursor.getColumnIndex(PrivateLetter.content))); privateLetterMap.put(PrivateLetter.time, cursor.getInt(cursor.getColumnIndex(PrivateLetter.time))); privateLetterMap.put(PrivateLetter.name, cursor.getString(cursor.getColumnIndex(PrivateLetter.name))); privateLetterMap.put(PrivateLetter.photo, cursor.getString(cursor.getColumnIndex(PrivateLetter.photo))); privateLetterMap.put(PrivateLetter.isSend, cursor.getInt(cursor.getColumnIndex(PrivateLetter.photo)) == 0? false : true); return privateLetterMap; } public static ArrayList<HashMap<String, Object>> getListPrivateLetter( DatabaseHelper dbHepler ){ SQLiteDatabase db = dbHepler.getReadableDatabase(); ArrayList<HashMap<String, Object>> PrivateLetterList = new ArrayList<HashMap<String,Object>>(); HashMap<String, Object> privateLetterMap = null; Cursor cursor = db.query( PrivateLetter.tableName, null, null, null, null, null, PrivateLetter.time + " DESC "); for( cursor.moveToFirst(); cursor.isAfterLast(); cursor.moveToNext() ){ privateLetterMap = new HashMap<String, Object>(); privateLetterMap.put(PrivateLetter._id, cursor.getInt(cursor.getColumnIndex(PrivateLetter._id))); privateLetterMap.put(PrivateLetter.time, cursor.getInt(cursor.getColumnIndex(PrivateLetter.time))); privateLetterMap.put(PrivateLetter.name, cursor.getString(cursor.getColumnIndex(PrivateLetter.name))); privateLetterMap.put(PrivateLetter.photo, cursor.getString(cursor.getColumnIndex(PrivateLetter.photo))); privateLetterMap.put(PrivateLetter.isSend, cursor.getInt(cursor.getColumnIndex(PrivateLetter.photo)) == 0? false : true); privateLetterMap.put(PrivateLetter.PrivateLetterUID, cursor.getLong(cursor.getColumnIndex(PrivateLetter.PrivateLetterUID))); PrivateLetterList.add(privateLetterMap); } return PrivateLetterList; } }