Javaの最近のブログ記事

自分用メモ。

今やってるプロジェクトでは一部Java DBを使ってる。初めて使ったので色々分からないこともあったけど、まぁDBMSだし基本的には一緒だね。

英語だけどこのページにチューニングの基礎的な内容が載ってる。

タイトル通り。

ごく単純なDBの中身を表示するプログラムをメンテしていた。各列の見出しをクリックするとその列の値によってソートされる仕組みになってたから、以下のようなSQLをprepareしようとしたけど出来なかった。

SELECT * FROM TBL WHERE FIELD1=? ... ORDER BY ?

JSTL

| コメント(0) | トラックバック(0)

JSTL(JSP Standard Tag Library)を使うとJSPファイルが結構すっきりする。

EL式とか、最初はとっつきにくかったけど、慣れてくるとかなり便利。
参考にしたのはきしださんのページIBMのページ(今見たらリンク切れだった...)。

ちなみにJSTLはJava EE 5(JSP 2.0)に統合されたらしい。良いことだ。新しいバージョン(JSTL 1.1)について解説してるページがあった。

タイトル通り。

色々試行錯誤したけど、結論としては
更新系のクエリーの場合


  1. JavaでDateクラスのインスタンスに正しいタイムゾーンを設定

  2. それをStatement#setObjectでセットして普通に実行するだけ

基本的にデータベース内部ではエポックからのミリ秒とかで管理してるはず。

で、SELECTクエリーの場合、ResultSet#getDateとかgetTimestampで返ってくるオブジェクトはローカルのタイムゾーンになってるので、必要に応じて適切なタイムゾーンを設定する。

基本的な事として、Dateオブジェクトに違うタイムゾーンを設定しても、内部的な時間が変更になるわけではない、はず。東京の午後1時とシンガポールの正午は内部的には同じ時間。文字列として表示した時に13:00となるか12:00となるかの違い。

慣れてしまえば、それ程難しくはないと思うけど、結構面倒。

MySQLのタイムゾーンの扱いについてはこのページが詳しい(この文書の和訳)。

JDBCドライバのオプションでタイムゾーン関係のがいくつかあるけど、試してない(マニュアルページ)。

自分用メモ

Javaだとrequest.getSession(true)でセッションを取得して、そこにオブジェクトをセットしたりってのを良くやるけど、それをBIRTから参照できるらしい。例によって参考にしたのは英語のページだけど。

BIRTってかなり何でも出来るね。

タイトル通り。まぁ要はclasspathの設定とかの話。

JBossではなくてWebLogicだけど、この一連のスレッドが役に立った。特にコメントの2番。

○環境
JBoss 4.0.3SP1 (別にバージョン依存の話ではないけど)
BIRT Runtime 2.2.2

やった事


  1. birt-runtime-2_2_2/ReportEngine を JBOSS_HOME/server/default にコピー

  2. birt-runtime-2_2_2/ReportEngine/lib/*.jar を JBOSS_HOME/server/default/lib にコピー

当然 setEngineHome には JBOSS_HOME/server/default/ReportEngine を指定。

今のプロジェクトではBIRTというオープンソースのレポートエンジンを使っている。

BIRTは色々便利なんだけど、欠かせない機能としてレポート内でJavaScriptを使う事が出来、さらにそのJavaScriptからJavaオブジェクトを呼び出す事が出来る。ビジネスロジック(及びDAO)はJavaで実装して、BIRTはデータの表示だけを行うようにすると良い感じ。(Beanを生成して、getterメソッドでStringとかfloatの値を取り出してレポートに表示する)

Javaオブジェクトの呼び出し方だけど、今まで2通りやった事がある。
スクリプトの使い方についてはこの辺(英語)。

Tocat用の監視ツール。JMXを使用してる。

Lambda Probe

インストールは基本的にwarファイルを配備するだけ。

Javaやっててclasspath関係で一度もハマった事無い人はモグリだと思う。

以前のプロジェクトでEJBを使ったときにクラスパスでちょっと不明な事があった。EJBって実体はjarファイルだけど、EJBが他の暮らすやライブラリに依存している時ってどうすればいいのだろう?

JavaHouseのこのスレッドが参考になった。

現在のプロジェクトでユニットテストを徐々に導入中。今まで社内にはちゃんとしたテストの手順とか無かったんだけど、プロジェクトも徐々に大きくなってきたのと、時間的に若干余裕が出てきたので色々整備中。

さて、通常のJavaクラスはJUnitでテストすればいいけど、サーブレットとかは?って事で、HttpUnitを使う事にした。Cactusも検討したけど。

とりあえずチュートリアルとか見て普通のテストは書けるようになったんだけど、ファイルアップロードを扱うサーブレットのテストでちょっとハマった。

このブログの作者

名前:kazu
仕事:IT関係の何でも屋
メール:kazu 後幕 kazu どと tv
詳しくはこの辺

このアーカイブについて

このページには、過去に書かれたブログ記事のうちJavaカテゴリに属しているものが含まれています。

前のカテゴリはHTML, CSS, JavaScriptです。

次のカテゴリはPHPです。

最近のコンテンツはインデックスページで見られます。過去に書かれたものはアーカイブのページで見られます。

ウェブページ