C Sharpens you up

http://qiita.com/yuba に移しつつあります

2013-01-01から1年間の記事一覧

JavaでもC#みたいなオブジェクト初期化子書けるんですよ

コンストラクタが特に何もしてくれず、インスタンス作ってから初期化しないといけないタイプのクラスってありますよね。シリアライズのためだったりJavaBeansだったり、あとはふつーのArrayListだから作ってから内容詰め込みます、みたいに。オブジェクト作…

SQLのカラム制約はテーブル制約と等価

SQL

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!のEbeanモデルをJUnitでテストするとき"It has not been enhanced"エラーを防ぐ

Play!のJava向けO/RマッパーであるEbeanはコンパイルに介入するタイプのフレームワークです。 具体的には、Ebeanモデルがコンパイルされたあとに、getter/setterを勝手に作成して埋め込んでくれます。これが、単にpublicフィールドを書いただけで遅延アクセ…

Play! framework Evolutionsでストアド関数を書きたい

Evolutionsに指定したSQL文は適用のとき、セミコロンで分解されて一文ずつデータベースに送信されます。 ではストアド関数に含まれるセミコロンはどうなるか。 やはりぶった切られてしまいます。当然文法エラー。ではぶった切られないようにするにはどうする…

Play! framework Evolutionsのsqlファイルの優先順位

Play! frameworkではEvolutionsファイルを書くことでデータベースへのスキーマ適用とか更新がWebからワンタッチできるようになります。ありがたいですね。sqlスクリプトファイルがスキーマ変更1件を表していて、【変更を適用するSQL文(Ups)】【変更を取り消…