Dolteng Scaffoldに対する機能追加とマスタ-ディテールScaffoldの紹介

Similar documents
S2DaoでもN:Nできます

早分かりS2Dao

Microsoft PowerPoint - Seasar2.5.ppt

JPA & Kuina-Dao入門

Microsoft PowerPoint - sc2007spring_Aa1_Kuina.ppt

n n n ( ) n Oracle 16 PostgreSQL 3 MySQL

tkk0408nari

Microsoft Word - Android_SQLite講座_画面800×1280

Seasar.NET入門

03_さらなる開発生産性向上へ.pptx

前ページからの続き // テキストボックス02 id 属性で取得 // id 属性で取得する場合は一意に決まるので 何番目かの指定は不要 var textbox02elem = document.getelementbyid("text_box02_id"); if ("001" == statee

TALON Tips < 親子関係のある構成データを TALON で表示する > 株式会社 HOIPOI 第 1.1 版 p. 1

Microsoft PowerPoint ppt

intra-mart Accel Platform — IM-Repository拡張プログラミングガイド   初版  

Case 0 sqlcmdi.parameters("?tencode").value = Iidata(0) sqlcmdi.parameters("?tenname").value = Iidata(1) 内容を追加します sqlcmdi.executenonquery() Case Else

クエリの作成が楽になるUDF

スライド 1

Exam : 1z1-809-JPN Title : Java SE 8 Programmer II Vendor : Oracle Version : DEMO Get Latest & Valid 1z1-809-JPN Exam's Question and Answers 1 from Ac

第 1 章 条件分岐 この章では 条件に応じて処理を分岐する方法について説明します 1. CASE 式で複雑な条件分岐を実現 2. 関数を使用した条件分岐 3. MERGE 文による条件に応じた DML の実行

実践的なサンプルアプリをその場でコーディングします!

intra-mart Accel Platform — イベントナビゲータ 開発ガイド   初版   None

データアダプタ概要

基礎計算機演習 実習課題No6

とても使いやすい Boost の serialization

第 2 章 問合せの基本操作 この章では データベースから情報を検索する際に使用する SELECT コマンド および SELECT コマンドと 同時に使用する句について説明します 1. 問合せとは 2. 基本的な問合せ 3. 列の別名 4. 重複行を一意にする 5. 検索行の絞込み 6. 文字パター

Microsoft Word - 430_15_Developing_Stored_Procedure.doc

はじめに コースの概要と目的条件分岐の方法や複雑な集計の手法など SQL のコーディングの幅を広げるためのテクニックについて説明します また パフォーマンスを考慮した記述方法や正しい結果を取得するための記述方法などについても あわせて説明します 本コースでは 実践的な SQL の記述手法を広く浅く紹

_IMv2.key

KeyWeb Creator 概要 What s KeyWeb Creator? 動的なホームページを作成するためのツール!! 従来の Web ページ DB を利用した Web ページ <HTML> <HEAD> <TITLE>show_book</TITLE> </HEAD> <BODY> <DI

ALG ppt

intra-mart Accel Platform — イベントナビゲータ 開発ガイド   初版  

intra-mart Accel Platform — TableMaintenance ユーザ操作ガイド   第7版   None

p _

intra-mart Accel Platform — TableMaintenance ユーザ操作ガイド   第8版  

S2Dao入門

データを TreeView コントロールで表示 VisualStudio2017 の Web サイトプロジェクトで bootstrap, 及び script フォルダの js ファイルが使用できるマスターページを親とする TestTreeView.aspx ページを作成します 下記の html コー

S2Pradoの紹介

基本サンプル

Taro php.jtdc

アルゴリズムとデータ構造1

PowerPoint プレゼンテーション

JUnit 概要 2015/4/16 版今泉俊幸 2015 bbreak Systems 1

PA4

052-XML04/fiÁ1-part3-’ÓŠ¹

第 2 章 PL/SQL の基本記述 この章では PL/SQL プログラムの基本的な記述方法について説明します 1. 宣言部 2. 実行部 3. 例外処理部

PowerPoint Presentation

橡実践Oracle Objects for OLE

問題1 以下に示すプログラムは、次の処理をするプログラムである

Oracle Application Expressの機能の最大活用-インタラクティブ・レポート

第14回若年者ものづくり競技大会「業務用ITソフトウェア・ソリューションズ」職種 模擬競技課題

1

Quick Sort 計算機アルゴリズム特論 :2017 年度 只木進一

目次 更新履歴... 1 はじめに... 3 レコードセット?... 3 準備... 5 SQL でデータを取得する... 6 データのループ処理... 7 列の値を取得する... 7 対象行を変更する (MoveFirst, MoveNext, MovePrevious, MoveLast)...

Oracle JDeveloper 10g ADF Creation Date: Jul 07, 2004 Last Update: Jul 08, 2004 Version 1.0

S2BaseとZend Framework

Microsoft Word - Android_SQLite講座_画面800×1280

1.SqlCtl クラスリファレンス SqlCtl クラスのリファレンスを以下に示します メソッドの実行中にエラーが発生した場合は標準エラー出力にメッセージを出力します (1)Connect() メソッド データベースへ connect 要求を行います boolean Connect(String

基本サンプル

PowerPoint プレゼンテーション


untitled

java_servlet2_見本

GUIプログラムⅣ

文字列操作と正規表現

基本サンプル

intra-mart Accel Platform

Microsoft認定資格問題集DEMO(70-513)

RDBでCDB

メール全文検索アプリケーション Sylph-Searcher のご紹介 SRA OSS, Inc. 日本支社技術部チーフエンジニア Sylpheed 開発者 山本博之 Copyright 2007 SRA OSS, Inc. Japan All right

( ( ( )

アルゴリズムとデータ構造1

intra-mart Accel Platform — IM-共通マスタ スマートフォン拡張プログラミングガイド   初版  

Microsoft Word - NonGenList.doc

ビジネスサーバ設定マニュアル_Standard応用編

d_appendixB-asp10appdev.indd

Microsoft認定資格問題集(70-483_demo)

: : : TSTank 2

Java講座

10/ / /30 3. ( ) 11/ 6 4. UNIX + C socket 11/13 5. ( ) C 11/20 6. http, CGI Perl 11/27 7. ( ) Perl 12/ 4 8. Windows Winsock 12/11 9. JAV

1,.,,,., RDBM, SQL. OSS,, SQL,,.

グラフの探索 JAVA での実装

PowerPoint -O80_REP.PDF

Flex2とS2Flex2とAIR紹介

Prog1_10th

テーブルの確認 sqlite>.tables.tables コマンドでデータベース内のテーブル一覧を表示する テーブルスキーマの表示 sqlite>.schema mytable.schema コマンドで指定のテーブルのスキーマを表示できる テーブル出力の整形.explain コマンドを使うと テー

Javaセキュアコーディングセミナー東京 第3回 入出力(File, Stream)と例外時の動作 演習解説

SpringSecurity

Part1 159 a a

With sqlda sqlda に SelectCommand を追加.SelectCommand = New MySqlCommand() With.SelectCommand.CommandType = CommandType.Text.CommandText = "select * from

DEMO1 まずはやってみよう アクティビティをダブルクリック 作成 - プロジェクト C# => Workflow CodeActivity をぽとぺ シーケンシャルと ステートマシン それぞれのコ ンソールアプリ あとライブラリがある びっくりマークは足りていないあかし プロパティをみると判別で

DAOの利用

JAVA とテンプレート

ValueHolder... 9 Customer.java Oracle TopLink 10g(10.1.3) È Volume3 2

8 if switch for while do while 2

このドキュメントに記載されている情報 (URL 等のインターネット Web サイトに関する情報を含む ) は 将来予告なしに変更することがあります このドキュメントに記載された内容は情報提供のみを目的としており 明示または黙示に関わらず これらの情報についてマイクロソフトはいかなる責任も負わないもの

新・明解Java入門

ii II Web Web HTML CSS PHP MySQL Web Web CSS JavaScript Web SQL Web

10 (1) s 10.2 rails c Rails 7 > item = PlanItem.new => #<PlanItem id nil, name nil,...> > item.name = "" => "" > item.valid? => true valid? true false

Microsoft Word - PHP_SQLServer2012

ALG ppt

Transcription:

Dolteng Scaffold に対する機能追加 とマスタ - ディテール Scaffold の紹介 せいいち (takao) 2009/03/07

目次 Dolteng Scaffold に対する機能追加 Scaffold に関して Ruby on Rails の Scaffold RoR Scaffold と Dolteng Scaffold の比較 Scaffold のデモ Scaffold が生成する検索条件 検索ロジック (S2Dao) 検索ロジック (Kuina-Dao) 検索ロジック (S2JDBC) マスタ - ディテール Scaffold の紹介 マスタ - ディテール Scaffold に関して マスタ - ディテール形式に関して マスタ - ディテール Scaffold のデモ おわりに

Dolteng Scaffold に対する機能追加

Scaffold に関して 機能 1 つのテーブルに対して CRUD が行える簡易なアプリケーションを生成する 有名なもの Ruby on Rails の Scaffold CakePHP の Scaffold 目的 開発生産性の向上 出発点をゴールに近付ける 初心者に対してフレームワークの敷居を下げる 競合するフレームワークへのアピール デモによるアピール度が高い 開発者層以外の人でも その効果を理解できる

Ruby on Rails の Scaffold 実行方法 ruby script/generate scaffold [ モデル名 ] ruby script/generate scaffold [ モデル名 ] [[ カラム名 ]:[ 型名 ]...] 生成されるアプリケーション

RoR Scaffold と Dolteng Scaffold の比較 Ruby on Rails の Scaffold ページ移動が可能 Dolteng 0.34.0 以前の Scaffold ページ移動ができない Dolteng 0.35.0 以降の Scaffold ページ移動が可能 検索条件の生成が可能

Scaffold のデモ S2Dao Kuina-Dao SAStruts SAStruts + Mayaa

目次 Dolteng Scaffold に対する機能追加 Scaffold に関して Ruby on Rails の Scaffold RoR Scaffold と Dolteng Scaffold の比較 Scaffold のデモ Scaffold が生成する検索条件 検索ロジック (S2Dao) 検索ロジック (Kuina-Dao) 検索ロジック (S2JDBC) マスタ - ディテール Scaffold の紹介 マスタ - ディテール Scaffold に関して マスタ - ディテール形式に関して マスタ - ディテール Scaffold のデモ おわりに

Scaffold が生成する検索条件 テーブルのカラムタイプ 生成される条件 S2Dao 版 String LIKE( 前方一致 ) Integer BigDecimal Date Timestamp デフォルト値 : 0 デフォルト値 : 1900/1/1 Kuina-Dao 版 String LIKE( 前方一致 ) Integer BigDecimal Date Timestamp

Scaffold が生成する検索条件 テーブルのカラムタイプ 生成される条件 SAStruts 版 String LIKE( 前方一致 ) SAStruts+ Mayaa 版 Integer BigDecimal Date Timestamp デフォルト値 : 0 デフォルト値 : 1900/1/1 String LIKE( 前方一致 ) Integer BigDecimal Date Timestamp デフォルト値 : 0 デフォルト値 : 1900/1/1 次期リリース予定

検索ロジック (S2Dao) 一覧検索画面 ListPage Dao SQL 文 生成指示画面にて選択した検索条件に従って 検索ロジックを生成 検索パラメータを And で繋げたメソッドを作成 検索パラメータを And で繋げた SELECT 文の条件を作成

検索ロジックコード例 (S2Dao) @Arguments({"argSal","argHiredate","argEmpNo","argEmpName"}) public Emp[] findbysalandhiredateandempnoandempnamepagercondition( java.math.bigdecimal argsal, java.util.date arghiredate, java.lang.integer argempno, java.lang.string argempname, EmpPagerCondition dto);

検索ロジックコード例 (S2Dao) select * from EMP /*BEGIN*/ where /*IF argsal!= null*/ SAL >= /*argsal*/'0' /*END*/ /*IF argempname!= null*/ /*IF argsal!= null arghiredate!= null argempno!= null*/ and /*END*/ EMP_NAME LIKE concat(/*argempname*/' ','%') /*END*/ /*END*/ ORDER BY SAL,HIREDATE,EMP_NO,EMP_NAME

検索ロジックコード例 (S2Dao) select * from EMP /*BEGIN*/ where /*IF argsal!= null*/ SAL >= /*argsal*/'0' /*END*/ /*IF argempname!= null*/ and EMP_NAME LIKE concat(/*argempname*/' ','%') /*END*/ /*END*/ ORDER BY SAL,HIREDATE,EMP_NO,EMP_NAME 次期リリース予定

検索ロジック (Kuina-Dao) 一覧検索画面 ListPage Dao Dto 生成指示画面にて選択した検索条件に従って 検索ロジックを生成 Dto クラスのプロパティにて 検索パラメータを作成

検索ロジックコード例 (Kuina-Dao) public Class prerender() { offset = empindex; EmpDto dto = new EmpDto(); dto.setmaxresults(limit); dto.setfirstresult(empindex); setcondition(dto); empitems = getempservice().findbyemp(dto); calculatepageindex(); } return null;

検索ロジックコード例 (Kuina-Dao) private void setcondition(empdto dto) { if (textsal!= null) { dto.setsal_ge(textsal); } if (texthiredate!= null) { dto.sethiredate_ge(texthiredate); } if (textempname == null textempname.length() == 0) { dto.setempname_like(textempname); } else { dto.setempname_like(textempname + "%"); } }

検索ロジック (S2JDBC) 一覧検索画面 Mayaa Action SimpleWhere の構築 jdbcmanager による検索の実行 生成指示画面にて選択した検索条件に従って 検索ロジックを生成 検索条件を SimpleWhere にて作成 jdbcmanager により検索を実行 デザインとロジックを分離したい場合は Mayaa を利用 次期リリース予定

検索ロジックコード例 (S2JDBC) @Execute(validator = false) public String index() { SimpleWhere swh = new SimpleWhere().ge("sal", empform.sal!= null && empform.sal.length() > 0? empform.sal : 0).ge("hiredate", empform.hiredate!= null && empform.hiredate.length() > 0? empform.hiredate : "1900/01/01").ge("empNo", empform.empno!= null && empform.empno.length() > 0? empform.empno : 0) ;.like("empname", empform.empname+"%") 次期リリース予定

検索ロジックコード例 (S2JDBC) empitems = jdbcmanager.from(emp.class).where(swh).orderby("sal,hiredate,emp_no,emp_name").limit(limit).offset(integer.valueof(empform.offset)).getresultlist(); 次期リリース予定

目次 マスタ - ディテール Scaffold の紹介 マスタ-ディテールScaffoldに関して マスタ-ディテール形式に関して マスタ-ディテールScaffoldのデモ 編集ロジック 編集画面コード例 編集ロジックコード例 おわりに

マスタ - ディテール Scaffold の紹介

マスタ - ディテール Scaffold に関して 機能 マスタテーブルとディテールテーブルで対になっているデータをメンテナンスするアプリケーションを生成する 目的 開発生産性の向上 Scaffold だけでは 生成後にディテールテーブルへの CRUD コードを追加する必要があり 時間がかかる 上記のコード追加作業を軽減するため 競合するフレームワークへのアピール Oracle ADF でもマスタディテール形式の AP を作成する仕組みが用意されている オープンソース側でもマスタディテール形式の AP を作成する仕組みを用意し その適用範囲を広げるため

マスタ - ディテール形式に関して (1) マスタテーブルマスタキー列列 A 列 B 列 C ディテールテーブルマスタキー列ディテールキー列列 D 列 E 列 F マスタテーブルのプライマリキー列が ディテールテーブルのプライマリキー列の一部になっている形式

マスタ - ディテール形式に関して (2) マスタテーブル マスタキー列 列 A ディテールテーブルディテールキー列列 D マスタキー列 _ID 列 E マスタとディテールの結合を表す列名が マスタテーブル名 + _ID となっている形式

マスタ - ディテール Scaffold のデモ S2Dao Public

編集ロジック 編集 / 確認画面 EditPage/ ConfirmPage マスタ用の Dao ディテール用の Dao 生成指示画面にて選択したマスタテーブルとディテールテーブルを編集するロジックを生成 1 件のマスタデータと複数件のディテールデータを扱える画面 (HTML と Page.java) のコードを作成 マスタ用及びディテール用の Dao を使用して 更新を実行

編集画面コード例 マスタ部分 ディテール部分 <tbody id="empitems"> <tr> <input type="hidden" id="meisaiid" /> <td><input type="text" id="meisaiempno" /></td> <td><span id="meisaiempnomessage"></span></td> <td><input type="text" id="meisaisal" /></td> <td><span id="meisaisalmessage"></span></td> <input type="hidden" id="meisaiversionno" /> </tr> </tbody>

編集ロジックコード例 public Class dofinish() { switch(super.crudtype) { case CrudType.CREATE: case CrudType.UPDATE: deptdao.update(deptdxo.convert(this)); for (int i = 0; i < empitems.length; i++) { empitems[i].meisaideptid = id; EmpDao.update(empItems[i].convert()); } break; case CrudType.DELETE:

おわりに 本セッションでの説明内容 検索条件とページ移動が追加された Scaffold S2Dao Kuina-Dao SAStruts SAStruts+Mayaa マスタ - ディテール Scaffold S2Dao Public 現在開発中 SAStruts+S2JDBC 版の検索条件とページ移動が追加された Scaffold