public static String getSelectSQL(
      Class<? extends Model> cls,
      String fieldName1,
      Object value,
      String fieldName2,
      Object fValue,
      Object tValue) {
    // TODO Auto-generated method stub
    Model entity;
    String arg1 = value.toString();
    String fArg2 = fValue.toString();
    String tArg2 = tValue.toString();
    try {
      entity = cls.newInstance();
      String columnName1 = entity.columnName(fieldName1);
      String columnName2 = entity.columnName(fieldName2);
      DataType type = cls.getDeclaredField(fieldName1).getAnnotation(Column.class).type();
      if (type == DataType.TEXT) {
        arg1 = "'" + value + "'";
      }
      type = cls.getDeclaredField(fieldName2).getAnnotation(Column.class).type();
      if (type == DataType.TEXT || type == DataType.DATE || type == DataType.DATETIME) {
        fArg2 = "'" + fValue + "'";
        tArg2 = "'" + tValue + "'";
      }

      return "SELECT * FROM "
          + entity.tableName()
          + " WHERE "
          + columnName1
          + " = "
          + arg1
          + " AND "
          + columnName2
          + " >= "
          + fArg2
          + " AND "
          + columnName2
          + " <= "
          + tArg2;
    } catch (Exception e) {
      e.printStackTrace();
      return null;
    }
  }
 public static String getSelectSQL(Class<? extends Model> cls, String fieldName, Object value) {
   Model entity;
   String args = value.toString();
   String selectSQLString = "";
   try {
     entity = cls.newInstance();
     String where = entity.columnName(fieldName) + " = ";
     if (!fieldName.equals("id")) {
       DataType type = cls.getDeclaredField(fieldName).getAnnotation(Column.class).type();
       if (type == DataType.TEXT) {
         args = "'" + value + "'";
       }
     }
     selectSQLString = "SELECT * FROM " + entity.tableName() + " WHERE " + where + args;
     if (entity instanceof Note) {
       selectSQLString += " order by date desc";
     }
     System.out.println(selectSQLString);
     return selectSQLString;
   } catch (Exception e) {
     e.printStackTrace();
     return null;
   }
 }