Download
Magazine
Develop
Account
Download
Magazine
Develop
Login
Forgot Account/Password
Create Account
Language
Help
Language
Help
×
Login
Login Name
Password
×
Forgot Account/Password
Category:
Software
People
PersonalForge
Magazine
Wiki
Search
OSDN
>
Find Software
>
System
>
TERASOLUNA Framework
>
Forums
>
Open Discussion
>
Dynamic Data
TERASOLUNA Framework
Description
Project Summary
Developer Dashboard
Web Page
Developers
Image Gallery
List of RSS Feeds
Activity
Statistics
History
Downloads
List of Releases
Stats
Source Code
Code Repository list
Subversion
View Repository
Ticket
Ticket List
Milestone List
Type List
Component List
List of frequently used tickets/RSS
Submit New Ticket
Documents
Wiki
FrontPage
Title index
Recent changes
Doc Mgr
List Docs
Communication
Forums
List of Forums
Open Discussion (1277)
Mailing Lists
list of ML
terasoluna-information
News
Forums:
Open Discussion
(Thread #24476)
Return to Thread list
RSS
Dynamic Data (2009-11-04 12:16 by
Anonymous
#46822)
Reply
Create ticket
●私はDATA.INIファイルがあります
DATA.INIの内容:
Col:項目1
ColNo:1
ColName:A
Col:項目2
ColNo:2
ColName:B
...........
●尚、データベースでEXAMBLETABLEテーブルがあります
EXAMBLETABLEの定義:
CREATE TABLE EXAMBLETABLE(
項目1 VARCHAR2(1);
項目2 VARCHAR2(1);
.........
)
今、私はSELECT A,B FROM EXAMBLETABLEのQueryをしたい時にどうしたらいですか?
Reply to #46822
×
Subject
Body
Reply To Message #46822 > ●私はDATA.INIファイルがあります > DATA.INIの内容: > Col:項目1 > ColNo:1 > ColName:A > > Col:項目2 > ColNo:2 > ColName:B > ........... > ●尚、データベースでEXAMBLETABLEテーブルがあります > EXAMBLETABLEの定義: > CREATE TABLE EXAMBLETABLE( > 項目1 VARCHAR2(1); > 項目2 VARCHAR2(1); > ......... > ) > 今、私はSELECT A,B FROM EXAMBLETABLEのQueryをしたい時にどうしたらいですか?
You can not use Wiki syntax
You are not logged in. To discriminate your posts from the rest, you need to pick a nickname. (The uniqueness of nickname is not reserved. It is possible that someone else could use the exactly same nickname. If you want assurance of your identity, you are recommended to login before posting.)
Login
Nickname
Preview
Post
Cancel
RE: Dynamic Data (2009-11-04 19:24 by
taromaru
#46830)
Reply
Create ticket
「DATA.INI」が何のことか分からないため、
回答になっているかどうか分かりませんが、
SQLを使用する方法であれば、
terasoluna-server4jweb-doc_2.0.2.0に同梱されているチュートリアルの
・2.6.3 SQLの設定
・2.6.4 ビジネスロジッククラスの作成とDAOの設定
が参考になるかと思います。
「項目1 VARCHAR2(1)」で作成した列(「A」という名前ではない列)を
SQLで「A」として取得したいという意図であれば、
SQLでAS句を使用し、別名をつけます。(「SELECT 項目1 AS A,…」)
Reply to
#46822
Reply to #46830
×
Subject
Body
Reply To Message #46830 > 「DATA.INI」が何のことか分からないため、 > 回答になっているかどうか分かりませんが、 > SQLを使用する方法であれば、 > terasoluna-server4jweb-doc_2.0.2.0に同梱されているチュートリアルの > ・2.6.3 SQLの設定 > ・2.6.4 ビジネスロジッククラスの作成とDAOの設定 > が参考になるかと思います。 > > 「項目1 VARCHAR2(1)」で作成した列(「A」という名前ではない列)を > SQLで「A」として取得したいという意図であれば、 > SQLでAS句を使用し、別名をつけます。(「SELECT 項目1 AS A,…」)
You can not use Wiki syntax
You are not logged in. To discriminate your posts from the rest, you need to pick a nickname. (The uniqueness of nickname is not reserved. It is possible that someone else could use the exactly same nickname. If you want assurance of your identity, you are recommended to login before posting.)
Login
Nickname
Preview
Post
Cancel
RE: Dynamic Data (2009-11-05 10:27 by
Anonymous
#46840)
Reply
Create ticket
ご回答、ありがとうございました。
ただ、私の質問はちょっと違います、
私の意味はDATA.INIファイルでEXAMTABLEテーブルの列名称と列番号が保存されます。
EXAMTABLEテーブルで列番号だけ表示される、列名が不明であることです。
で、私は列名がSELECTしたい時にどうすれば良いでしょうか?
以上、宜しくお願い致します。
Reply to
#46830
Reply to #46840
×
Subject
Body
Reply To Message #46840 > ご回答、ありがとうございました。 > ただ、私の質問はちょっと違います、 > 私の意味はDATA.INIファイルでEXAMTABLEテーブルの列名称と列番号が保存されます。 > EXAMTABLEテーブルで列番号だけ表示される、列名が不明であることです。 > で、私は列名がSELECTしたい時にどうすれば良いでしょうか? > > 以上、宜しくお願い致します。
You can not use Wiki syntax
You are not logged in. To discriminate your posts from the rest, you need to pick a nickname. (The uniqueness of nickname is not reserved. It is possible that someone else could use the exactly same nickname. If you want assurance of your identity, you are recommended to login before posting.)
Login
Nickname
Preview
Post
Cancel
RE: Dynamic Data (2009-11-05 10:34 by
Anonymous
#46844)
Reply
Create ticket
私の意味は列名からDATA.INIで列番号を取って、取った列番号を使ってEXAMTABLEテーブルをSELECTです。
QueryDAOクラスがオーバーライド出来るかどか?
Reply to
#46840
Reply to #46844
×
Subject
Body
Reply To Message #46844 > 私の意味は列名からDATA.INIで列番号を取って、取った列番号を使ってEXAMTABLEテーブルをSELECTです。 > QueryDAOクラスがオーバーライド出来るかどか?
You can not use Wiki syntax
You are not logged in. To discriminate your posts from the rest, you need to pick a nickname. (The uniqueness of nickname is not reserved. It is possible that someone else could use the exactly same nickname. If you want assurance of your identity, you are recommended to login before posting.)
Login
Nickname
Preview
Post
Cancel
RE: Dynamic Data (2009-11-05 13:22 by
taromaru
#46845)
Reply
Create ticket
・「EXAMTABLEテーブルで列番号だけ表示される、列名が不明である」
・「列名がSELECTしたい」
・「列名からDATA.INIで列番号を取って、
取った列番号を使ってEXAMTABLEテーブルをSELECT」
上記は、内容が矛盾しているように見えるので、
恐らく日本語を間違っていると思います。
最初の質問のDATA.INIとSELECT文があっているものとして、
仮に、以下のように解釈します。
・SELECTすべき列は、外部ファイルのDATA.INIに記述されている。
・DATA.INIに記述されている列情報を使用し、SELECT文を動的に構築したい。
・画面に表示する際、DATA.INIのColNoの順に並べたい。
------------------
DATA.INIの内容が、
Col:項目1
ColNo:1
ColName:A
なら、
SELECT A FROM EXAMTABLEを実行し
DATA.INIの内容が、
Col:項目1
ColNo:1
ColName:A
Col:項目2
ColNo:2
ColName:B
なら、
SELECT A,B FROM EXAMTABLEを実行したい。
------------------
上記であっている場合は、
・ビジネスロジックによって、取得する列は固定なのか、
それとも、DATA.INI依存で動的なのか
の情報を併せて記述してください。
また、
・使用しているフレームワーク(Server-Web/Rich, Batch等)
・DB(Oracle等)
を併記していただければ、
より的確な回答ができると思います。
Reply to
#46844
Reply to #46845
×
Subject
Body
Reply To Message #46845 > ・「EXAMTABLEテーブルで列番号だけ表示される、列名が不明である」 > ・「列名がSELECTしたい」 > ・「列名からDATA.INIで列番号を取って、 > 取った列番号を使ってEXAMTABLEテーブルをSELECT」 > 上記は、内容が矛盾しているように見えるので、 > 恐らく日本語を間違っていると思います。 > > 最初の質問のDATA.INIとSELECT文があっているものとして、 > 仮に、以下のように解釈します。 > > ・SELECTすべき列は、外部ファイルのDATA.INIに記述されている。 > ・DATA.INIに記述されている列情報を使用し、SELECT文を動的に構築したい。 > ・画面に表示する際、DATA.INIのColNoの順に並べたい。 > ------------------ > DATA.INIの内容が、 > Col:項目1 > ColNo:1 > ColName:A > なら、 > SELECT A FROM EXAMTABLEを実行し > > DATA.INIの内容が、 > Col:項目1 > ColNo:1 > ColName:A > > Col:項目2 > ColNo:2 > ColName:B > なら、 > SELECT A,B FROM EXAMTABLEを実行したい。 > ------------------ > > 上記であっている場合は、 > ・ビジネスロジックによって、取得する列は固定なのか、 > それとも、DATA.INI依存で動的なのか > の情報を併せて記述してください。 > > また、 > ・使用しているフレームワーク(Server-Web/Rich, Batch等) > ・DB(Oracle等) > を併記していただければ、 > より的確な回答ができると思います。
You can not use Wiki syntax
You are not logged in. To discriminate your posts from the rest, you need to pick a nickname. (The uniqueness of nickname is not reserved. It is possible that someone else could use the exactly same nickname. If you want assurance of your identity, you are recommended to login before posting.)
Login
Nickname
Preview
Post
Cancel
RE: Dynamic Data (2009-11-06 18:44 by
Anonymous
#46859)
Reply
Create ticket
いつもご親切、ありがとうございます。
私は外国人だから、日本語で問題を説明するのが難しいです。ごめんなさい。
すみませんが、私の質問をもう一回説明いたします。
DATA.INIの内容が、
[column01]
ColNo: 1
ColName: A
[column02]
ColNo: 2
ColName: B
なら、EXAMTABLE(A,B)(A,Bは列名です)
DATA.INIの内容が、
[column01]
ColNo: 1
ColName: C
[column02]
ColNo: 2
ColName: D
なら、EXAMTABLE(C,D)(C,Dは列名です)
それで、EXAMTABLEのColumn1はAかCかまだ分からないので、DATA.INIの「ColNo」を使用し、SELECT文を動的に構築したい。
私のしたいことが、
SQL:
SELECT 1,--([column01]のColNoの値)、
2 --([column02]のColNoの値)
FROM EXAMTABLE
なら、SELECTの返却リストの内容は{A、B}、{C、D}によって返却する
以上、宜しくお願い致します。
Reply to
#46845
Reply to #46859
×
Subject
Body
Reply To Message #46859 > いつもご親切、ありがとうございます。 > 私は外国人だから、日本語で問題を説明するのが難しいです。ごめんなさい。 > > すみませんが、私の質問をもう一回説明いたします。 > > DATA.INIの内容が、 > [column01] > ColNo: 1 > ColName: A > > [column02] > ColNo: 2 > ColName: B > なら、EXAMTABLE(A,B)(A,Bは列名です) > > DATA.INIの内容が、 > [column01] > ColNo: 1 > ColName: C > > [column02] > ColNo: 2 > ColName: D > なら、EXAMTABLE(C,D)(C,Dは列名です) > > それで、EXAMTABLEのColumn1はAかCかまだ分からないので、DATA.INIの「ColNo」を使用し、SELECT文を動的に構築したい。 > > 私のしたいことが、 > SQL: > SELECT 1,--([column01]のColNoの値)、 > 2 --([column02]のColNoの値) > FROM EXAMTABLE > なら、SELECTの返却リストの内容は{A、B}、{C、D}によって返却する > > 以上、宜しくお願い致します。
You can not use Wiki syntax
You are not logged in. To discriminate your posts from the rest, you need to pick a nickname. (The uniqueness of nickname is not reserved. It is possible that someone else could use the exactly same nickname. If you want assurance of your identity, you are recommended to login before posting.)
Login
Nickname
Preview
Post
Cancel
RE: Dynamic Data (2009-11-09 15:22 by
taromaru
#46885)
Reply
Create ticket
> EXAMTABLEのColumn1はAかCかまだ分からないので
そのまま解釈すると、
・Column1がAかCか分かったときにsqlMapをメンテナンスする
というのが最善の策です。
他に、
sqlMapに列名を直接記述せずに、
パラメータで列名を変更する方法を示します。
sqlMap.xml
------------------
<select id="sel1" parameterClass="java.util.List"
resultClass="jp.Result">
SELECT
<dynamic>
<iterate conjunction=",">
$[]$
</iterate>
</dynamic>
FROM
EXAMTABLE
</select>
------------------
xxBLogic.java
------------------
List<String> colList = new ArrayList<String>();
colList.add("A as column01");
colList.add("B as column02");
List<Result> resList = queryDAO.executeForObjectList("sel1", colList);
------------------
※colListの構築部分は、
DATA.INIを参照してListに詰める処理に置き換えてください。
Result.java
------------------
private String column01;
private String column02;
+setter/getter
------------------
sqlMap.xmlの中で使用した$~$のパラメータは、
文字列をそのままSQLとして埋め込む際に使用する書き方です。
SQLインジェクションの危険性があるため、
システムのユーザが入力する値のバインドには使用しないでください。
(システムのユーザ(管理者ではなくユーザ)が入力できるパラメータは、
$~$ではなく#~#を使用します。)
Reply to
#46859
Reply to #46885
×
Subject
Body
Reply To Message #46885 > > EXAMTABLEのColumn1はAかCかまだ分からないので > そのまま解釈すると、 > ・Column1がAかCか分かったときにsqlMapをメンテナンスする > というのが最善の策です。 > > > 他に、 > sqlMapに列名を直接記述せずに、 > パラメータで列名を変更する方法を示します。 > > sqlMap.xml > ------------------ > <select id="sel1" parameterClass="java.util.List" > resultClass="jp.Result"> > SELECT > <dynamic> > <iterate conjunction=","> > $[]$ > </iterate> > </dynamic> > FROM > EXAMTABLE > </select> > ------------------ > > xxBLogic.java > ------------------ > List<String> colList = new ArrayList<String>(); > colList.add("A as column01"); > colList.add("B as column02"); > List<Result> resList = queryDAO.executeForObjectList("sel1", colList); > ------------------ > ※colListの構築部分は、 > DATA.INIを参照してListに詰める処理に置き換えてください。 > > Result.java > ------------------ > private String column01; > private String column02; > +setter/getter > ------------------ > > sqlMap.xmlの中で使用した$~$のパラメータは、 > 文字列をそのままSQLとして埋め込む際に使用する書き方です。 > SQLインジェクションの危険性があるため、 > システムのユーザが入力する値のバインドには使用しないでください。 > (システムのユーザ(管理者ではなくユーザ)が入力できるパラメータは、 > $~$ではなく#~#を使用します。)
You can not use Wiki syntax
You are not logged in. To discriminate your posts from the rest, you need to pick a nickname. (The uniqueness of nickname is not reserved. It is possible that someone else could use the exactly same nickname. If you want assurance of your identity, you are recommended to login before posting.)
Login
Nickname
Preview
Post
Cancel