/**
   * 回调业务逻辑
   *
   * @param back
   * @return
   */
  protected <T> T callBack(int type, DaoCallBack<T> back) {
    T result = null;
    SQLiteDatabase conn = null;
    try {

      switch (type) {
        case TYPE_READ:
          conn = sqlConnection.getReadableDatabase();
          break;
        case TYPE_WRITE:
          conn = sqlConnection.getWritableDatabase();
          break;
      }
      if (conn == null) throw new NullPointerException("SQLiteDatabase conn  is null");
      result = back.invoke(conn);
      // conn.beginTransaction();
      // conn.setTransactionSuccessful();
    } catch (Exception e) {
      // conn.endTransaction();
      Logger.e(TAG, e);
    } finally {
      DBUtil.Release(conn, cursor);
    }
    return result;
  }