2014年6月27日金曜日

mysqlでダンプファイルから特定の列をリストアするには?

idを指定してやる場合。

mysqldump -uroot -p db_name table_name --where='id<1000000'

http://stackoverflow.com/questions/5658284/how-to-use-mysqldump-for-a-portion-of-a-table

MySQLでカラムの値を分割して抽出するには?

MySQLでカラムの値を分割して抽出するには、SUBSTRING_INDEX関数を使ってやる。

mysql> SELECT SUBSTRING_INDEX('www.mysql.com', '.', 2); -> 'www.mysql' mysql> SELECT SUBSTRING_INDEX('www.mysql.com', '.', -2); -> 'mysql.com'

http://dev.mysql.com/doc/refman/5.0/en/string-functions.html#function_substring-index

3つめの数値の引数がポイント。正の数は左から数えて、負の数は右から数えて、いくつめの分割された値かを指す。

MySQLでのフロー制御関数の扱い方

MySQLでIF-ELSE IF-ELSE的な事をしたい場合、こうする。

mysql> SELECT CASE 1 WHEN 1 THEN 'one'
    ->     WHEN 2 THEN 'two' ELSE 'more' END;
        -> 'one'
mysql> SELECT CASE WHEN 1>0 THEN 'true' ELSE 'false' END;
        -> 'true'
mysql> SELECT CASE BINARY 'B'
    ->     WHEN 'a' THEN 1 WHEN 'b' THEN 2 END;
        -> NULL

http://dev.mysql.com/doc/refman/5.0/en/control-flow-functions.html

2014年6月3日火曜日

SpringでJSONを返す場合に、特定のフィールドを表示させ無いようにするにはObjectMapperのaddMixInAnnotationsを使う。

SpringでJSONを返す場合に、特定のフィールドを表示させ無いようにするには、JacksonのObjectMapperで、addMixInAnnotationsに表示させたく無いフィールドを設定した抽象クラス、もしくはインターフェイスを大元のJSONオブジェクトにマップしたクラスに教えてやる。

Snippet

@Controller
public class SubjectController

{
    private ObjectMapper _objectMapper = new ObjectMapper();

    public Controller()
    {
    _objectMapper.getSerializationConfig().addMixInAnnotations(Base.class, FieldsNotAvailable.class);

    }

    @RequestMapping(value="/path", method={RequestMethod.GET})
    public @ResponseBody String getJson(ModelMap model)
    {
        return _objectMapper.writeValueAsString(subject);
    }
}

public abstract class FiledsNotAvailable
{
    @JsonIgnore
    public abstract String getSomeField();
}

http://stackoverflow.com/questions/22609079/how-to-filter-the-json-response-returning-from-spring-rest-web-service
http://fasterxml.github.io/jackson-databind/javadoc/2.0.0/com/fasterxml/jackson/databind/ObjectMapper.html#addMixInAnnotations(java.lang.Class, java.lang.Class)