package com.snail.travellingTrail.common.persistence; import java.util.ArrayList; import java.util.List; import com.snail.travellingTrail.newTravel.model.ImageData; import android.database.Cursor; import android.database.sqlite.SQLiteDatabase; import android.util.Log; public class DatabaseManager { private SQLiteDatabase database; public DatabaseManager(SQLiteDatabase database) { this.database = database; } /** * 插入图片到数据库 * @param data * @return */ public int insertImage(ImageData data) { database.beginTransaction(); //开始事务 int id = -1; try { database.execSQL("INSERT INTO draft VALUES(null, ?, ?)", new Object[]{data.getPath(), data.getName()}); Cursor cursor = database.rawQuery("SELECT LAST_INSERT_ROWID()", null); cursor.moveToFirst(); id = cursor.getInt(0); cursor.close(); database.setTransactionSuccessful(); //设置事务成功完成 database.endTransaction(); } catch (Exception e) { database.endTransaction(); } return id; } /** * 修改图片名 * @param data * @return */ public boolean reivseImageName(ImageData data) { database.beginTransaction(); try { database.execSQL("UPDATE draft SET name = ? WHERE id = ?", new Object[]{data.getName(), data.getId()}); database.setTransactionSuccessful(); database.endTransaction(); return true; } catch (Exception e) { database.endTransaction(); return false; } } /** * 查询图片列表 * @return */ public List<ImageData> queryImageList() { database.beginTransaction(); List<ImageData> dataList = new ArrayList<ImageData>(); try { Cursor cursor = database.rawQuery("SELECT * FROM draft", null); while (cursor.moveToNext()) { ImageData imageData = new ImageData( cursor.getInt(0), cursor.getString(1), cursor.getString(2)); dataList.add(imageData); }; cursor.close(); database.setTransactionSuccessful(); database.endTransaction(); } catch (Exception e) { Log.e("DatabaseManager--->queryImageList", e.toString()); database.endTransaction(); return null; } return dataList; } /** * 删除图片 * @param data * @return */ public boolean removeImage(ImageData data) { database.beginTransaction(); try { database.execSQL("DELETE FROM draft WHERE id = ?", new Object[]{data.getId()}); database.setTransactionSuccessful(); database.endTransaction(); return true; } catch (Exception e) { database.endTransaction(); return false; } } }