Java

PreparedStatementで%(部分一致検索)を扱う方法

String sql = "select user_name from user_master where user_code like ? "; ps.setString(1, userCode + "%"); あんまりイケてないですけどね。

JSPでCSSが適用されない

JSPでCSSを読み込んで適用しているか確認していると、 JSPにスクリプトレットに書くと、突然にスタイルシートが適用されなくなりました。 また、ブラウザからスタイルシートのアドレスを打ち込んで確認しようとすると、なぜかCSSの中身ではなく、読み込み元…

java.util.concurrent.Callableインスタンスが別スレッドで実行された際にスレッドが終了するタイミング

public class CallableSample implements Callable<Boolean> { public Boolean call() throws Exception { return Boolean.TRUE; } public static void main(String[] args) { ExecutorService ex = Executors.newSingleThreadExecutor(); Future<Boolean> future = ex.submit(</boolean></boolean>…

Mapをコピーする ※2013/07/29 内容更新

最近まで知らなかったのですが…。 これまでMapをコピーするのに、KeySetを取って存在するだけぐるぐる回して、 Keyに対応する値を取り出して、そのKeyと値をついにして新たなMapに追加していく、なんてコトをしていたのですが、以下の手順で簡単にできちゃい…

Apache POIで作成したHSSFWorksheet#getBytes()をファイル出力すると壊れている

Apache POIで作成したHSSFWorksheetからgetBytes()メソッドで取得したバイト配列をファイル出力したのですが、ファイルが壊れてしまっています。 よく調べてみると、HSSFWorksheet#write(java.io.OutputStream)というメソッドもあり、こちらのメソッドで出力…

privateなコンストラクタを別クラスから呼び出してインスタンスを生成する方法

こんな感じです。 // 完全修飾子で指定してクラスを取得 Class clazz = Class.forName("sample.Hoge"); // 引数なしのコンストラクタを取得 Constructor constructor = clazz.getDeclaredConstructor(); // そのまま実行するとアクセス違反で怒られるのでア…

JDK5.0でreflectionを使用しようとすると警告される理由

reflectionを実装しようとして、JDK1.4では、 Method method = String.class.getMethod("toString", null); という感じでメソッドを取得していました。 第2引数はこのtoStringというメソッドの引数のクラスの配列を渡さないといけないのですが、toStringメソ…

PreparedStatementを使用していて「java.sql.SQLException: 列索引が無効です。」が発生

以下の、 statement.setDate(0, date);が問題。 PreparedStatementにパラメータをセットする時は、第1引数(parameterIndex)を「1からはじめる」必要あり。久しぶりにPreparedStatementを使って忘れていたので、備忘のため日記に書いておきます。

jconsole

以前メモリ状況を確認するのに、「visualgc」というツールをご紹介しましたが、J2SE5.0より、標準的にメモリ状況を確認できるツール「jconsole」が同梱されていました。まず起動時のJVM引数に、 -Dcom.sun.management.jmxremoteを追加しておきます。 で、そ…

JDK 5.0環境でjvmstatを使用する

Javaアプリケーションに対してメモリリークが発生していないかを確認するため、ガベージコレクションがいつ発生しているとか、メモリが現在どのくらい使用されているのかを調べるのに、いつもjvmstatを使用します。J2SE 1.4では、別途jvmstatをインストール…