All articles in feature

動的SQL

埋め込みで動的なSQLというのはなんだか矛盾するような何かをはらんでいるような気がするのは私だけだろうか…とにかくやってみた.動的SQLって何だ?サンプルecpgのDEALLOCATEにおけるバグ?雛型を使用しない動的SQL雛型を使用した動的SQL 動的SQLって何だ? 思うに埋め込みSQLというのは,文字通りプログラムが発行するSQLをソースコードに埋め込んでしまうというものだろう.で,動的SQL?動的?何を埋め込むんだっけ?…動的SQLでは大体雛型を埋め込むということになるという認識でよいだろうか.とにかくコーディングの段階で確定するSQLを静的SQLとして,動的SQLはプログラムの実行段階で確定するSQLのことを言うらしい.EXEC SQL INSERT INTO hoge VALUES (:i, ‘aaa’);上の埋め込みSQLは変数:iを使用しており,コーディング次第でその値は実行時に動的に変更することができる.ということはプログラム実行段階でSQLが確定することになり,動的SQLになるような気がする.だがこういうものは動的SQLと呼ばないらしい.上の埋め込みSQLをecpgで処理した結果は以下のようになる.{ ECPGdo(LINE, 0, 1, NULL, “insert into hoge values( ? , … More 動的SQL

一つのformで複数の操作ボタンを設置し,一つのアクションで受ける.

一つのformで複数の操作ボタンを設置し,一つのアクションで受けるには,「どのボタンが押されたのか?」に基づいて処理する必要がある.Strutsにはこのようなパターンを想定したActionのサブクラスがある.問題DispatchActionLookupDispatchActionサンプル注意点 問題 以下のような画面があったとする.この画面で,二つのテキストボックスに値を入力し,「足す」または「引く」ボタンを押すと,次の画面で三つ目のテキストボックスに計算結果(和または差)が出力されるようなアプリケーションを考える.以下は「足す」ボタンを押した結果である(※).以下は「引く」ボタンを押した結果である.以下は「未定義」ボタンを押した結果である.これらは本頁のサンプルの出力画面である.これらの画面は一つのフォームの中に三つのテキストフィールドと三つのボタンがある.したがって,Java Script等を使用しない場合,どのボタンを押しても一つのアクションに送信される.送信されたアクションのActionクラスでは,どのボタンが押されたかに応じて処理を行う必要がある.フォームのボタンは以下のようになっている. DispatchAction Actionクラスがorg.apache.struts.actions.DispatchActionを拡張している場合,submitボタンのvalueの値と同名のメソッドが,executeと同じパラメータで呼び出される.例えば というボタンが押されれば,該当Actionクラス(extends DispatchAction)でユーザが定義した(※)public ActionForward add(ActionMapping mapping,ActionForm form,HttpServletRequest request,HttpServletResponse response)throws Exceptionが呼ばれる.ただし,この仕組みを使用するにはstruts-config.xmlにて該当actionタグの属性にparameter=”command”などと記述しなければならない.属性parameterの値はsubmitボタンのname属性の値(すなわちJSP上ではhtml:submitカスタムタグの属性propertyの値)と揃えなければならない.※ 呼び出すメソッドが見付からなければunspedifiedメソッドが呼ばれる. LookupDispatchAction サンプル メッセージリソースファイルは先に示した.実行結果画面も先に示した.以下は実行時のcatalina.out.===setCommand called … More 一つのformで複数の操作ボタンを設置し,一つのアクションで受ける.

JavaでDOM

前回の「JavaでDOM」でXMLファイルを読み込んで,ツリーを作成しそのツリーを探索したり,ノード情報を表示したりした.今回はこのツリーに要素を付加したり削除したりする.要素の追加と削除 要素の追加と削除

JNI

ろくにCをやってないのにJava Native Interfaceをちょっとやってみた.基本編クラスやオブジェクトの取扱 基本編JNIの基本とりあえずHello2003-07-20T15:13+09:00 matsuJavaからhelloを出力するネイティブコードを呼んでみる.nativeメソッドの引数(プリミティブ型)2003-07-20T15:13+09:00 matsunativeメソッドから引数を渡せなければ,あんまり嬉しくない.なので,ここではいろんなプリミティブ型の引数を渡しみる.フィールドの取得2003-07-20T15:13+09:00 matsuネイティブコードからクラスやオブジェクトのフィールドを取得する.フィールドの設定2003-07-20T15:13+09:00 matsuネイティブコードからクラスやオブジェクトのフィールドを設定する.メソッドを呼び出す2003-07-20T15:13+09:00 matsuネイティブコードからクラスやオブジェクトのメソッドを呼び出す.クラスやオブジェクトの取扱ネイティブコードでもクラスやオブジェクトを取扱うことができる.参照2003-07-20T15:13+09:00 matsu参照とポインタは同じ概念のはずだが,JNIでは明確に区別する必要がある.オブジェクトの生成2003-07-20T15:13+09:00 matsuネイティブコードでもnewに相当することができる.TOPページ不安火FeatureAutomakeAXISBASHスクリプトCommon LispC++C言語GDBGTKHibernateJFreeChartJNIMPEGNMSPerlPostgreSQLRestletSpringStrutsTaglibXMLXUL埋火PC Clusterベンチマーク調査ギガビットイーサネットの調査MPIで並列プログラミングSoftwarehpl_filterSiteGeneratorGCMonHKBSoftware(En)SiteGenerator

リダイレクトとパイプ

リダイレクトとパイプによって,入力や出力の流れを制御することができる.リダイレクトとは標準ファイルディスクリプタファイルへの追加書き込みパイプ リダイレクトとは プロンプトからコマンドを実行したとき,多くの場合はディスプレイに出力される.こととき標準出力はディスプレイになっている.コマンドの実行結果を例えばhogeというファイルに出力したいときは,以下のようにする.command > hogeこれは,標準出力をファイルhogeに指定している.標準出力だけでなく,標準エラー出力や標準入力も切替えることができる.これがリダイレクトである. 標準ファイルディスクリプタ ファイルディスクリプタとは,プログラムがファイルやデバイスにアクセスする際に使用する整数である.標準ファイルディスクリプタを以下に示す.0 : 標準入力1 : 標準出力2 : 標準エラー出力先の例は以下と等価である.command 1> hoge標準エラー出力をファイルhogeにリダイレクトする場合は,以下のようにする.command 2> hoge標準出力と標準エラー出力をファイルhogeにリダイレクトする場合には,以下の二つの方法がある.command > hoge 2>&1command … More リダイレクトとパイプ

シーケンスとシリアル型

シーケンスという連番自動生成機能とシーケンスによるシリアル型について.シーケンスの作成と削除シーケンス操作関数シリアル型 シーケンスの作成と削除 シーケンスを作成するには,CREATE SEQUENCEを実行する(※).firstdb=> \h CREATE SEQUENCECommand: CREATE SEQUENCEDescription: define a new sequence generatorSyntax:CREATE [ TEMPORARY | TEMP ] SEQUENCE … More シーケンスとシリアル型