2018-04-01から1ヶ月間の記事一覧

PostgreSQLでCSVファイルをレコードに取り込む(COPY編)

COPY 句 ファイル ⇔ テーブル間のデータを高速にコピーする際に使用する。ファイルの内容を無条件でインポートする際は高速で楽なのだが、あまり複雑なことができず、以下のケースで困る。 任意の条件によるインポート対象の絞り込み キー重複 COPYコマンド…

@ConfigurationPropertiesの実装メモ

.propertiesからの設定値を読み出す際に使用する。 prefix で、読み出し範囲の絞り込みが可能。 setterが必要。 @ConfigurationPropertiesを設定したクラスを継承しても、親の設定値は注入されない。 getter/setterの名称は、get/set[プロパティ名の先頭の…

@Transactionalの使い方の注意点メモ

技術的?メモ(spring)|kochabloさんのブログ DIして直接@Transactionalのメソッドを呼ぶこと @Transactionalのメソッドより、RuntimeExceptionがthrowされることでロールバック実施となる 同一クラス内の@Transactionalメソッドを呼び出すような実装では、ロ…

Spring bootでGZIPリクエスト/レスポンスに対応する

Spring bootでGZipを扱う際は、リクエストへの対応かレスポンスへの対応かで対応方法が異なります。 * やりたいこと * 対応方法 GZIPリクエストに対応する Filter(GZipFilter)の実装 GZIPでレスポンスを返す 設定の変更 GZIPでレスポンスを返す Appendix A. …

時間帯重複チェック

期間A(開始日時、終了日時)と、期間B(開始日時、終了日時)の期間が重複しているかのチェック。 期間跨ぎが不可能な条件での重複チェック 年の指定により、開始日時>終了日時となるケースが発生しないケースでの重複チェック 期間A.終了日時 > 期間B.開始日…

Super CSVを使ってStringをCSVオブジェクトに変換する

CSVの解析は、ちゃんとやろうとすると意外と大変だったりします。 カンマでsplitするだけ、と思っていてはダメで、ダブルクォーテーションによる区切りとそのエスケープまでしないといけません。面倒です。 なので、ライブラリを使用するのが望ましいです。S…

PostgreSQLでHEX文字列を符号ありの数値に変換する

HEX文字列から数値への変換処理は、PostgreSQLのSQLでもできます。 4Byte(8文字)、8Byte(16文字) 4Byte、8Byteの変換は、下記Stack Overflowで回答がつけられています。 そちらを参照のこと。 stackoverflow.com 2Byte(4文字) 自分がやりたかったのは2Byteの…

HEX文字列(16進数バイト文字列)の変換

文字列との変換 DatatypeConverterを使用すると良いです。weblabo.oscasierra.net // HEX -> String String hexString = "E38182E38184E38186E38188E3818A"; byte[] bytes = DatatypeConverter.parseHexBinary(hexString); System.out.println(new String(by…

BigDecimalのコンストラクタ

Javaで小数点を扱う際は、double/floatでも扱えますが、精度の高いBigDecimalを使用するのが一般的かと思います。BigDecimalのコンストラクタはいくつか用意されていますが、char[], Stringで文字列をとって宣言したり、int, long で数値をとって宣言するこ…