package com.yeetou.xinyongkaguanjia.db.service; import java.util.ArrayList; import java.util.List; import android.content.ContentValues; import android.content.Context; import android.database.Cursor; import android.database.sqlite.SQLiteDatabase; import com.yeetou.xinyongkaguanjia.db.DBHelper; import com.yeetou.xinyongkaguanjia.db.base.DbEmail; import com.yeetou.xinyongkaguanjia.db.dao.DbEmailInterface; public class DbEmailService implements DbEmailInterface { private DBHelper dbHelper; private DbEmailService() { } public DbEmailService(Context mContext) { DBHelper.init(mContext); this.dbHelper = DBHelper.dbHelper(); } @Override public List<DbEmail> getAllEmail() { SQLiteDatabase db = dbHelper.getWritableDatabase(); Cursor cursor = db.rawQuery("select * from email where state=0", new String[] {}); List<DbEmail> emails = new ArrayList<DbEmail>(); while (cursor.moveToNext()) { DbEmail email = new DbEmail(); email.setId(cursor.getInt(0)); email.setEmail(cursor.getString(1)); email.setState(cursor.getInt(2)); email.setCreated_at(cursor.getLong(3)); email.setUpdated_at(cursor.getLong(4)); emails.add(email); } cursor.close(); return emails; } @Override public boolean save(DbEmail email) { if (isExsit(email.getEmail())) { return false; } else { SQLiteDatabase db = dbHelper.getWritableDatabase(); ContentValues values = new ContentValues(); values.put("email", email.getEmail()); values.put("created_at", System.currentTimeMillis()); db.insert("email", null, values); return true; } } public void synSave(List<DbEmail> emails) { SQLiteDatabase db = dbHelper.getWritableDatabase(); for (DbEmail email : emails) { ContentValues values = new ContentValues(); deleteOne(email.getEmail()); values.put("_id", email.getId()); values.put("email", email.getEmail()); values.put("state", email.getState()); values.put("created_at", email.getCreated_at()); values.put("updated_at", email.getUpdated_at()); db.insert("email", null, values); } } private boolean isExsit(String email) { SQLiteDatabase db = dbHelper.getWritableDatabase(); Cursor cursor = db.rawQuery("select * from email where email=?", new String[] { email }); if (cursor.moveToFirst()) { cursor.close(); return true; } else { cursor.close(); return false; } } public void deleteOne(String email) { SQLiteDatabase db = dbHelper.getWritableDatabase(); db.execSQL("delete from email where email=?", new String[] { email }); } @Override public void delete() { SQLiteDatabase db = dbHelper.getWritableDatabase(); db.delete("msgs", null, null); } }