Aggavara

  博客园 :: 首页 :: 博问 :: 闪存 :: 新随笔 :: 联系 :: 订阅 订阅 :: 管理 ::

2012年9月29日

摘要: 採番用テーブルによってidの採番を行う場合、「SELECT ... FOR UPDATE」を使えばよい、というのがここ1年で覚えた知識のひとつ。ただ、あまり深くは理解していませんでした。一番の疑問点は、「FOR UPDATE」という文字列の指す意味。ふつうに訳すと「更新のための」となり、照会は問題なく行えそうな気がしてきます。仮に照会が行えるとしたら、極めて近いタイミングのアクセスがが発生した場合、重複したidができる可能性があることになってしまいます。また、ロックの種類はおおまかに共有ロック(照会可能、更新不可)と排他ロック(照会・更新とも不可)があるようです。FOR UPDATEで実際に排 阅读全文
posted @ 2012-09-29 16:40 Aggavara 阅读(4832) 评论(0) 推荐(0) 编辑

摘要: FOR UPDATEの自動生成DB2Dialectを指定してS2JDBCのSQL自動生成でforUpdate()を使うと、「 for update with rs」が付加されたSQLが発行されます。select T1_.KEY as C1_, T1_.VALUE as C2_ from ID_GENERATOR T1_ where T1_.KEY = 'EMPLOYEE_ID' for update with rsDb2Dialectのソースをのぞいてみると、そのような記述があるのが確認できます。ちなみにDb2DialectはS2Tigerの中に存在します。利用できないメソッド 阅读全文
posted @ 2012-09-29 16:40 Aggavara 阅读(312) 评论(0) 推荐(0) 编辑

摘要: http://localhost:8080/app/subapp/action/method/1ホスト名以降、「メインアプリ/サブアプリ/アクション/メソッド/パラメータ」とします。SAStrutsでこのURLにアクセスした場合の、<s:link>と<html:link>の挙動を比較してみます。s:link以下、公式リファレンスの引用です。SAStrutsには、Strutsのhtml:linkを継承したs:linkが用意されています。 href属性を設定するときに、コンテキストルートを自動的に補完させる場合に使います。パスを/ではじめた場合は、コンテキストルートからみた 阅读全文
posted @ 2012-09-29 16:37 Aggavara 阅读(1225) 评论(0) 推荐(0) 编辑

摘要: SAStruts/S2JDBC JSPで画面部品を作ってみる - 130単位の続きです。実際に作りたかった画面部品は、テーブル結合を伴った、ネストしたプロパティを持つ項目でした。これを実現するのにまた地味に時間を食いました。というか要はMapの使い方を知らなかっただけなのですが。エンティティとサービス従業員に部署を結合して、所属する部署を表示させたいとします。Employeeへ関連を定義します。@Entitypublic class Employee { ... @ManyToOne Department department;}EmployeeServiceで、結合して取得... 阅读全文
posted @ 2012-09-29 16:36 Aggavara 阅读(625) 评论(0) 推荐(0) 编辑

摘要: これまではこんな感じで週ごとに振り返ってきましたが、なかなか現実に追いつかず、また記憶があいまいな部分もあったりして、ちょっと書くのがしんどくなってきました。これからはその日やったことを、HOTな状態のまま書いていきたいと思います。画面部品マスタ系テーブルから項目取得セレクトボックスで表示こんな画面部品をつくりたいと考えました。参考リンクその1:画面部品 - C/pHeR Memo - Java とか。Eclipse とか。その2:Cubby - Tips 集ひと月前にこれらの記事を見たときはさっぱり意味がわかりませんでした。が、あらためてサンプルを見なおしてみたところ、作れそうな気がしてきた 阅读全文
posted @ 2012-09-29 16:34 Aggavara 阅读(770) 评论(0) 推荐(0) 编辑

摘要: はじめてのSAStruts 5週目 - 130単位の続きです。いろいろやっていたと思うのですが、あまりメモに残してなかったのでざっくりと。間違った情報があったら申し訳ありません。2/9~2/13エンティティとテーブルの再構築とりあえずIntegerとString(VARCHAR)で開発を進めていた実際の現行テーブルは数値にはNUMERIC、文字列にはCHARが使われていたというわけで型を揃えることにしたgen-entityを行うと以下のようになったNUMERIC (DB2) → BigDecimal (Java)CHAR(DB2) → String (Java)gen-ddlでは以下のようにな 阅读全文
posted @ 2012-09-29 16:33 Aggavara 阅读(334) 评论(0) 推荐(0) 编辑

摘要: はじめてのSAStruts 4週目 - 130単位の続きです。DBアクセス処理を実装していくにあたり、O/RマッパーのS2JDBCを本格的に使い始めました。2/2~2/6複数のスキーマからエンティティ自動生成スキーマ毎にxml定義を作成してみる「schemaname」に対象のスキーマ名を記述Gen-Entityのみで、他のタスク(Geb-Namesとか)には不要それぞれのxmlをAnt実行(ただし基本的に最初の1回しか実行しないため、1ファイルで都度書き換えればよいのかも)DDL生成時(Gen-DDL)は、1つのxmlを実行すればよい(エンティティでの指定が必要(後述))参考:Seasar2 阅读全文
posted @ 2012-09-29 16:32 Aggavara 阅读(337) 评论(0) 推荐(0) 编辑

摘要: はじめてのSAStruts 3週目 - 130単位の続きです。この週でView(JSP)が一通り完成しました。1/26~1/30開発環境再構築何かの拍子に設定を間違えたかで、エラーが出るようになったためSAStruts開発に特化した「EclipseIDEforSAStrutsDevelopers」を新たにインストール(Eclipseは3.3、Tomcatは6.0.16)日本語化やプラグイン導入の手間が省けて、かなり楽に済んだ配布元:404 Error - Not Found導入手順:404 Error - Not FoundDoltengでプロジェクト再作成後、バックアップしておいたファイルを 阅读全文
posted @ 2012-09-29 16:31 Aggavara 阅读(449) 评论(0) 推荐(0) 编辑

摘要: はじめてのSAStruts 2週目 - 130単位の続きです。この週はひたすらView(JSP)をつくっていました。1/19~1/23JSPのループ文beginとendを指定または、対象の配列などをitemsで指定<c:forEach var="month" begin="1" end="12"> <html:option value="month">month</html:option></c:forEach><c:forEach var="user 阅读全文
posted @ 2012-09-29 16:29 Aggavara 阅读(217) 评论(0) 推荐(0) 编辑

摘要: 開発でいっぱいいっぱいで、追いつくどころか全然更新できてませんでしたが。はじめてのSAStruts 1週目 - 130単位の続きです。※2/16追記:コードに一部誤りがあったので修正しました。1/13~1/16DB2環境構築Windows版のDB2をダウンロード&インストールIBM - Download DB2 Express-C - Free to develop, deploy, distributeDB2用JDBCドライバーはインストールされたディレクトリに入ってたCSEからDB2への接続を試すDB2のクライアントツールは重たそうだったので、慣れているCSEを使いたい汎用ODBCサービス 阅读全文
posted @ 2012-09-29 16:28 Aggavara 阅读(217) 评论(0) 推荐(0) 编辑