マンガでわかるデータベース
- 作者: 高橋麻奈,あづま笙子,トレンドプロ
- 出版社/メーカー: オーム社
- 発売日: 2005/12/01
- メディア: 単行本
- 購入: 22人 クリック: 292回
- この商品を含むブログ (57件) を見る
「漫画+説明+ちょっとした問題」という構成なのでリズムに乗れるかもしれない。イメージを強くする意味で漫画は有用なのかもしれないが人によってはいらない人もいるんじゃないかなと思ったり...w
ACID属性とロックの話はとてもためになった。前者は情報処理試験以来で忘れてた。後者は仕事でもたまに出てくるが学んだことはなく。このへんわかると、実際に障害とかプログラム設計とかの場合に考えられる領域増えて有用だし楽しいだろうなとなんとなく思った。
リストボックスの同期、選択に対応する第三の値
やりたいこと
リストボックスを使っていて、そのリストが選択された時の「対応する値1」と「対応する値2」をブラウザ上だけで取得したいケースがありました。具体的に書くと、会社名を選択してもらって、それに会社マスタIDと会社略称を連動させブラウザ上で扱いたいケースです。正直実装はしたものの冗長な気とスマートじゃない気がして...
実装方法
実装方法ですが、会社名-会社マスタIDのリストの他に、会社略称-会社マスタIDのリストを隠して用意しました。個人的にこの時点で変な感じがするんですが、ブラウザからデータを返さずに行わなければならないため、htmlを読み込んでブラウザで表現した時点で、会社名と会社マスタIDと会社略称の3つが同じ要素順序でいる必要があると思い、この方法以外思いつきませんでした。
JSPはこうなっています。
<html:select property="companyMstId" styleId="companies" errorStyleClass="err"> <html:option value="">※選択して下さい</html:option> <c:forEach var="e" varStatus="s" items="${companies}"> <html:option value="${f:h(e.companyMstId)}">${f:h(e.companyNameKj)}</html:option> </c:forEach> </html:select> <%--companyAbbreviatedNameは会社略称--%> <html:select property="companyAbbreviatedName" styleId="companyAbbreviatedName" errorStyleClass="err" styleClass="vanish"> <html:option value=""></html:option> <c:forEach var="e" varStatus="s" items="${companies}"> <html:option value="${f:h(e.companyMstId)}">${f:h(e.companyAbbreviatedName)}</html:option> </c:forEach> </html:select>
そしてJavaScriptはこう。
jQueryもいます。
var ryakuArray = new Array(); //ID属性から会社略称のエレメント(?)を取得 ryakuArray = document.getElementById("companyAbbreviatedName"); //選択された会社名リストのインデックスを取得 var index = $("select#companies").get(0).selectedIndex; //目的の会社略称をゲット var ryaku = (ryakuArray[index]); $(ryaku).text();
エピローグ
JavaScriptを扱うのは初めてだったので実現できただけで嬉しかったのですが、普通というか他の人はどうやるんだろうという疑問は起こりました。これでいいんだろうか...
また、面白かったので「初めてのJavaScript」を買いました。興味が出ていいことです。でも読む時間がありません。どうしてもプライオリティが低いので割り当てる時間が足りません。まずは「Head First Java」読みきらねば...
開発_社内サービス
開発中。
windowsserver2003+postgreSQL+apacheTomcat。
Java+SAStruts+S2JDBC。
メインの構成はこんなんで、JSPやJQuery使用。html4+css2。
範囲は広い。特にStrutsのタグ本日はまった。最初はタグだからhtmlかと思ったんだけど、タグなだけでは特定できなかった(笑)$もJQueryのものだと思っていなくて時間使うし。分からないことは多いけど、単に無知なだけと認識してるので調べていけば対応できる。対応しないと教えながらやっていくことができないので困るんです><
といか「head first java」と「プログラミング言語Java」よみこなしたい^q^
java開発環境作成
開幕言い訳
色々言及するけど整理・深堀してない。
ダウンロード
まずはJDKのダウンロードから始める。(macはappleが作って勝手に入れてくれてる気がする。)winについてはJDKなどでググッてsunとかからおっことしてくる。javaSEとEEがあるけど、正直EEはいろいろ詰まってエンタープライズな感じとしか認識してない。要調。とりあえずjavaSEを落とした。ダウンロードに際して登録云々言われるかもしれない。どうも日本語サイトから進めると要求されるみたいで、英語のサイトからダウンロードすると要求されずにダウンロードできたと思う。
macのディレクトリ表記
macのディレクトリの表記を見ててよく分からないことが多く凹んでたんだけど助かったエントリ。
http://d.hatena.ne.jp/liquidfunc/20090302/1236015758
これは教えてもらわんと新規参入者には厳しい…
CentOS
とりあえず5.6をダウンロード。7つのファイルに分かれている(CD版)。
ダウンロードしたあとはそれが壊れていないかチェック。windowsにデフォで入ってるコマンドではないみたい。
http://oshiete.goo.ne.jp/qa/3012522.htmlを参照して解決した。ここまで。
重複チェックagain
重複チェック。かなりの確率で出てくる事になるだろうロジック。前にも重複チェックは書いていて、その時には一度サブファイル表示したものを①配列に格納して②LOOKUPしていた。
が、2ステップじゃなくいっぺんにできると言われた。頭いいなーと思いましたw
それはサブファイルから配列にしまうときにLOOKUPもやってしまうということ。ステップ数が減らせるし分かりやすい。
S1STCD LOOKUP ARREY1 N 90 MOVE S1STCD ARREY1
これを繰り返すだけ。スマートやんなー。
別の面の話題だけど、ハンドリング難しいのは重複した二つの対象を反転させたい時。
「重複したもの2」を反転させるのは簡単だけど「重複したもの1」を反転させようとするとサブファイルの相対レコードNo.が変わってしまって連続した処理にしづらい。やれないこともないけど、二つの相対レコードNo.をハンドリングしないといけない。しかもこのときのサブファイルは1レコード中に2フィールドチェックするものがあり(振替マスタの表示で、元と先がセットで1レコードだった)、サブファイルの仕様としてどのレコードもフラグは共通なので、4つハンドリングしないといけなかった。
元コードのチェックで「重複したもの1」を反転させに行くと、そのレコードの先コードも重複チェックしないといけない。この時ばかりはサブファイルの仕様がうざったくてしかたなかった。
相対レコードNo.5でフィールド1と2のフラグがオン・オフの時に、相対レコードNo.2を読みに行くとなんで5と同じオン・オフが適用されなければいけないのか!気持ち的にはレコードごとにフラグ持ってていいだろと思う。
話を戻すと、解決策は、自分でサブファイルのレコードにフラグのオンオフ状況を非表示フィールドで持たせることだった。こうすれば反転させに帰った時も、もう一方のフラグがどうあるべきなのかきちんと分かるようになる。これができるから仕様はあんななのかなとも思った。