2013-01-01から1年間の記事一覧
コンストラクタが特に何もしてくれず、インスタンス作ってから初期化しないといけないタイプのクラスってありますよね。シリアライズのためだったりJavaBeansだったり、あとはふつーのArrayListだから作ってから内容詰め込みます、みたいに。オブジェクト作…
SQLのテーブルにcol_A, col_Bというカラムがあるとしますよ。ここでCHECK(col_A = col_B)という制約を、col_Aにカラム制約として付けたとします。すると UPDATE my_table SET col_A = col_A + 1; なんて操作は阻止されます。当然。では、 UPDATE my_table SE…
2年前につぶやいた内容の詳しい説明。 32ビット整数をとりあえずスクランブルするすごく簡単な方法に気付いてしまった。なにか奇数をかけると、それにかければ元の数に戻るような奇数が必ずひとつあるから、それを力任せで見つけてしまえばいいんだ。ビット…
考え中。とりとめゼロ。普通ユーザー管理DBにはパスワードのハッシュ値しか格納しないで、この情報はユーザー認証というか、パスワードがあってるかどうかの判定にだけ使う。で、それとは関係なく。ユーザー管理下のデータをすべて暗号化して格納してくれと…
Play!のJava向けO/RマッパーであるEbeanはコンパイルに介入するタイプのフレームワークです。 具体的には、Ebeanモデルがコンパイルされたあとに、getter/setterを勝手に作成して埋め込んでくれます。これが、単にpublicフィールドを書いただけで遅延アクセ…
Evolutionsに指定したSQL文は適用のとき、セミコロンで分解されて一文ずつデータベースに送信されます。 ではストアド関数に含まれるセミコロンはどうなるか。 やはりぶった切られてしまいます。当然文法エラー。ではぶった切られないようにするにはどうする…
Play! frameworkではEvolutionsファイルを書くことでデータベースへのスキーマ適用とか更新がWebからワンタッチできるようになります。ありがたいですね。sqlスクリプトファイルがスキーマ変更1件を表していて、【変更を適用するSQL文(Ups)】【変更を取り消…