JP5190241B2 - 情報処理装置、情報処理方法及びプログラム - Google Patents

情報処理装置、情報処理方法及びプログラム Download PDF

Info

Publication number
JP5190241B2
JP5190241B2 JP2007255529A JP2007255529A JP5190241B2 JP 5190241 B2 JP5190241 B2 JP 5190241B2 JP 2007255529 A JP2007255529 A JP 2007255529A JP 2007255529 A JP2007255529 A JP 2007255529A JP 5190241 B2 JP5190241 B2 JP 5190241B2
Authority
JP
Japan
Prior art keywords
information
source code
program
definition file
access
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2007255529A
Other languages
English (en)
Other versions
JP2009086992A (ja
Inventor
充志 小田
克信 柴田
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
NS Solutions Corp
Original Assignee
NS Solutions Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by NS Solutions Corp filed Critical NS Solutions Corp
Priority to JP2007255529A priority Critical patent/JP5190241B2/ja
Publication of JP2009086992A publication Critical patent/JP2009086992A/ja
Application granted granted Critical
Publication of JP5190241B2 publication Critical patent/JP5190241B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Description

本発明は、情報処理装置、情報処理方法及びプログラムに関する。
プログラミング言語の中には、データベース(以下、DBという)への接続や、DBで管理されているテーブルを操作するためのAPI(Application Program Interface)が用意されているものがある。前記DBへの接続や操作を行うアプリケーションを作成する際、このAPIが用いられており、このようなAPI等を用いてDBへの接続やテーブル操作を行うプログラムをDBアクセスプログラムと称する。
また、開発者の負担軽減を目的とする、規則的にDBアクセスプログラムのソースコードの一部を自動生成する技術(特許文献1参照)や、プログラムで扱うデータと、DBのデータとの間のマッピングを支援する技術が存在する。
特開2004−302840号公報
しかしながら、近年のシステム開発は開発の規模が大きくなっていることに加え、技術面の仕様が高度化、複雑化しているため、大人数でチームを組み、チーム内の各メンバーが得意の技術分野毎に開発を分担する分業開発のスタイルが定着している。それ故、開発言語によって開発担当者が異なることが多く、分業できないと作業が非常にやり難かった(SQLが得意な開発者と、それ以外のプログラム言語が得意な開発者とは一般的に異なり、システム開発の現場では夫々担当が別であること多い。)。
また、既に構築されているDBを利用したシステム開発も多く、既存のDBの仕様に併せたDBアクセスプログラムを生成しなければならないことが多い。
また、システム開発では、固有の条件下におけるテーブル操作や、複数テーブルに跨った操作等、開発しているアプリケーションの仕様固有の複雑な操作を行うDBアクセスプログラムを生成せねばならない事が多い。しかしながら、例えば前記特許文献1は、1つのテーブルのレコードを単に全件参照するような単純な仕様のDBアクセスプログラムの生成しか対応できない。
また、システム開発者が前記単純な仕様のDBアクセスプログラムのソースコードを改変して複雑な操作を行うDBアクセスプログラムに修正することは不可能ではないが、開発に携わる不特定多数の開発者が、DBアクセスプログラムのソースコードに手を加えることは、ソースコードの品質を落とすことに繋がる場合が多かった。
また、従来技術では、未検証のSQLにより、実際に動かないSQLのDBアクセスプログラムが存在しても、実行してみるまでエラーが出ず、バグの発見が遅れていた。
同様に、DBアクセスプログラムの実行により得られたテーブルのレコードを格納するレコード格納プログラムの型マッピングが静的に決まっていない場合、実行時にマッピングを行う必要があり、型マッピングの失敗が発生する可能性があった。
また、システム開発過程や運用過程において、DB設計に変更が発生することは多く、その変更がソースコードに反映されていなくても、それを気付かせる技術がなかった。
本発明はこのような問題点に鑑みなされたもので、DBにアクセスするプログラムを含むシステム開発において、分業開発を可能にすると共に、プログラムの質を均一にすることを目的とする。
そこで、本発明の情報処理装置は、情報入力画面を介して入力された、データベースのテーブルの操作に係る操作情報と、データベースのテーブルに対する操作に係るDBアクセスプログラムの関連情報と、に基づいて、アクセス定義ファイルを出力するアクセス定義ファイル出力手段と、前記アクセス定義ファイルに基づいて、発行予定のSQL文を組み立てるソースコード生成手段と、を有し、前記ソースコード生成手段は、前記アクセス定義ファイルに基づいて、前記テーブルの各カラムのデータの型を前記データベースに問い合わせ、問い合わせの結果得られた前記型に基づいて、型マッピング情報を参照し、前記プログラムのソースコードで使用する型を決定することを特徴とする。
また、本発明は、情報処理方法及びプログラムとしてもよい。
本発明によれば、DBを操作するプログラムを含むシステム開発において、分業開発を可能にすると共に、プログラムの質を均一にすることができる。
以下、本発明の実施形態について図面に基づいて説明する。
<実施形態1>
図1は、情報処理装置(コンピュータ)のハードウェア構成の一例を示す図である。図1に示されるように、情報処理装置1は、ハードウェア構成として、入力装置11と、表示装置12と、記録媒体ドライブ装置13と、ROM(Read Only Memory)15と、RAM(Random Access Memory)16と、CPU(Central Processing Unit)17と、インターフェース装置18と、HD(Hard Disk)19と、を含む。
入力装置11は、情報処理装置1の操作者が操作するキーボード及びマウス等で構成され、情報処理装置1に各種情報等を入力するのに用いられる。表示装置12は、情報処理装置1の操作者が利用するディスプレイ等で構成され、各種情報(又は画面)等を表示するのに用いられる。
インターフェース装置18は、情報処理装置1をネットワークに接続するネットワーク接続装置である。後述する情報処理装置1の機能又は後述するフローチャート等に係るプログラムは、例えば、CD−ROM等の記録媒体14によって情報処理装置1に提供されるか、ネットワーク等を通じてダウンロードされる。記録媒体14は、記録媒体ドライブ装置13にセットされ、例えばプログラム等が記録媒体14から記録媒体ドライブ装置13を介してHD19にインストールされる。
ROM15は、情報処理装置1の電源投入時に最初に読み込まれるプログラム(例えばブートプログラム等)等を記録する。RAM16は、情報処理装置1のメインメモリである。CPU17は、必要に応じて、HD19よりプログラムを読み出して、RAM16に格納し、プログラムを実行することで、後述する機能の全て又は一部を提供したり、後述するフローチャート等を実行したりする。
なお、HD19は、プログラム以外に、後述する図2に示すDB、型マッピング情報、コードテンプレート等を記憶する。
図2は、情報処理装置の機能構成の一例を示す図である。図2に示されるように、情報処理装置1は、機能構成として、DBアクセサ定義出力部21と、ソースコード生成部22と、DB23と、を含む。ここで、本実施形態において、DB23は、DBMS(DataBase Management System)のことをいうものとする。
DBアクセサ定義出力部21は、DB操作情報31と、DBアクセスプログラムジェネレート情報32と、に基づいて、DBアクセサ定義ファイル33を生成する。なお、このDBアクセサ定義ファイル33を生成する処理の詳細は、後述する図3〜図5を用いて説明する。
ソースコード生成部22は、DBアクセサ定義ファイル33に基づいて、発行予定のSQL文(以下、発行予定SQL文という)を組み立てる。なお、この発行予定SQL文を組み立てる処理の詳細は、後述する図6及び図7を用いて説明する。
また、ソースコード生成部22は、DBアクセサ定義ファイル33に基づいて、DB23にテーブルの各カラムのデータの型を問い合わせ、問い合わせの結果得られたデータの型に基づいて、型マッピング情報34を参照し、テーブルの操作に係るプログラム(より具体的には、レコード格納プログラム37)のソースコードで使用する型を決定する。なお、このテーブルの操作に係るプログラムのソースコードで使用する型を決定する処理の詳細は、後述する図8及び図9を用いて説明する。
また、ソースコード生成部22は、型マッピング情報34から取得したテストデータを用いて、発行予定SQL文を、DB23に対して発行し、前記SQL文の動作検証を行う。なお、このSQL文の動作検証を行う処理の詳細は、後述する図10を用いて説明する。
ソースコード生成部22は、前記動作検証の結果、前記SQL文が正常に動作すると判断した場合、前記発行予定SQL文と、前記決定した型と、テーブルの操作に係るプログラムのソースコードのテンプレート(コードテンプレート35)と、に基づいて、テーブルの操作に係るプログラム(より具体的には、DBアクセスプログラム36、レコード格納プログラム37)のソースコードを生成する。なお、ソースコードを生成する処理の詳細は、後述する図11〜図15を用いて説明する。
次に、DBアクセサ定義ファイル33を生成する処理の詳細を図3〜図5を用いて説明する。図3は、DBアクセサ定義ファイルを生成する処理の一例を示す図である。図4は、情報入力画面の一例を示す図(その1)である。図5は、DBアクセス定義ファイルの一例を示す図である。
DBアクセサ定義出力部21は、図4に示す情報入力画面を介して入力された、DB操作情報31と、DBアクセスプログラムジェネレート情報32と、に基づいて、図5に示すようなDBアクセサ定義ファイル33を生成する。ここで、DB操作情報31とは、DB23のテーブル名や、SQL文に関する情報である。また、DBアクセスプログラムジェネレート情報32とは、データベースのテーブルに対する操作に係るDBアクセスプログラムに関する情報であって、より具体的には、このプログラム(本実施形態の例では、DBアクセスプログラム36、レコード格納プログラム37)の名称、コメント、メソッド名、である。なお、図4に示す情報入力画面は、DBアクセサ定義出力部21が、表示装置12に表示させ、入力された情報の取得やその表示制御等を行う。
ユーザ(開発者)が、図4に示す情報入力画面を介して「テーブル名(図4の例では"Emp")」、「SQL文に関する情報(図4の例では"WHERE SAL=&sal $order")」、「アクセサ名(図4の例では"EmpTableAccessor")」、「コメント(図4の例では"従業員名を給与で検索する")」、「メソッド名(図4の例では"executeQuery")」、を入力する。即ち、DB操作情報31及びDBアクセスプログラムジェネレート情報32をDBアクセサ定義出力部21へ渡す。DBアクセサ定義出力部21は、受信したDB操作情報31及びDBアクセスプログラムジェネレート情報32をタグで収納したXML形式で表現し、図5に示すようなDBアクセサ定義ファイル33を生成する。例えば、図4に示す情報入力画面を介して入力されたテーブル名(図4の例では"Emp")は、図5に示すDBアクセサ定義ファイル33においてテーブル名(属性情報)を識別するタグ(図5の例では"<table−name>Emp</table−name>")を用いて表現される。なお、図4における各入力項目と図5におけるタグとの対応関係が定義されたファイルは予め用意されているものとする。DBアクセサ定義出力部21は、前記ファイルを参照し、図4に示す入力画面を介して受信したDB操作情報31及びDBアクセスプログラムジェネレート情報32を、タグで囲んで出力することで、図5に示すDBアクセサ定義ファイル33を生成する。
DBアクセサ定義出力部21が上述したような処理によってDBアクセサ定義ファイル33を生成することで、図4に示す情報入力画面においてユーザが「場所ID」を指定して置き換えを指示し、長いSQL文中の一部だけ変更した複数のDBアクセスプログラム(メソッド)を定義するような場合でも、煩雑さを排除し、保守性を向上させることができる。例えば図4のように、「メソッド名」が"executeQuery"の「SQL文に関する情報」に、場所ID"$order"を定義し、「メソッド名」が"executeQueryOrder"、における「埋め込み先」に"executeQuery"及び"場所ID:order"を、「SQLに関する情報」に"ORDER BY ENAME"を、定義した場合、DBアクセサ定義出力部21は、メソッド"executeQuery"で定義するSQL文に"ORDER BY ENAME"を追加したSQL文を含むDBアクセスプログラムのメソッド"executeQueryOrder"を生成する。つまり、DBアクセサ定義出力部21は、場所IDを利用することで、SQL文を継承するDBアクセスプログラムのメソッドを生成する。
より具体的には、DBアクセサ定義出力部21は、定義された前記情報を読み込むと、継承元となる"executeQuery"メソッドの「SQL文に関する情報」を収納するタグ(図5の例では"<query−string></query−string>")に場所IDを示す"$order"を記載し、継承先となる"executeQueryOrder"メソッドの場所IDを収納するタグ(図5の例では"<query−string place−id="order"></query−string>")に場所ID("$order")へ埋め込む情報(図5の例では"ORDER BY ENAME")を定義し、図5に示すDBアクセサ定義ファイル33を生成する。なお、図5のDBアクセサ定義ファイル33は、SQL文における継承関係をタグに付された属性情報や段落の階層でもって表現した入れ子構造をとって表現しているが、タグの属性情報でもってSQL文の継承関係を識別できるのであれば、図5に示した構造に限定されない。
数万行にも及ぶソースコードからなる大規模なシステムのプログラムを大人数で開発する場合、自由にソースコードを書いて開発していく方法ではプログラムの質が保てず、バグも発生しやすかった。しかしながら、DBアクセサ定義出力部21が、図4に示す情報入力画面を介して入力された、DB操作情報31と、DBアクセスプログラムジェネレート情報32と、に基づいて、図5に示すようなDBアクセサ定義ファイル33を生成することにより、不必要に人がソースコードを書く(又は編集する)機会を与えないので、質の向上に繋がる。また、ユーザ(開発者)は、例えばJava(登録商標)等のプログラムの知識を必要とせずとも、図4に示される情報入力画面に、DBアクセスプログラムジェネレート情報32と、SQL文の一部を含むDB操作情報31、を入力するだけでよい(つまり、SQLの知識を有していればよい)ので、例えば、Java技術者と、SQL技術者と、の分業開発が容易となる。また、ユーザは、情報入力画面を利用して、一旦入力したSQL文に関する情報等を編集することもできるつまり、ユーザは、情報入力画面を利用して、自由にSQL文を書くこともできる。また、場所IDを利用することで、SQL文を継承するDBアクセスプログラムを生成することが可能となるため、重複したSQL文を繰り返し定義する必要が無くなり、煩雑さが排除され、保守性が向上する。
次に、発行予定SQL文を組み立てる処理の詳細を図5、図6及び図7を用いて説明する。図6は、発行予定SQL文を組み立てる処理の一例を示す図である。図7は、組み立てられた発行予定のSQLの一例を示す図である。
ソースコード生成部22は、DBアクセサ定義ファイル33(より具体的にはDBアクセサ定義ファイル33に含まれるDB操作情報と、DBアクセスプログラムジェネレート情報と、)に基づいて、DBアクセスプログラム36、レコード格納プログラム37内で発行予定(つまり、DBアクセスプログラム36のソースコード、レコード格納プログラム37のソースコードに含まれる予定)の図7に示されるような発行予定SQL文38をメソッド単位で組み立てる。
図5に示すDBアクセサ定義ファイル33から図7に示す発行予定SQL文を組み立てる処理の詳細を説明する。ソースコード生成部22は、受信した図5に示すDBアクセサ定義ファイル33を読み込み、DBアクセサ定義ファイル33において上位の階層にある発行予定SQL文を含むメソッドから生成する。より具体的には、まず、ソースコード生成部22は、図5に示すDBアクセサ定義ファイルを、上位の階層のクエリ要素から読み込み、"<table−name>Emp</table−name>"、"<query name="executeQuery" type="select">"を把握し、Empテーブルに対して参照の操作(SELECT)を行うメソッド"executeQuery"の生成を開始する。ソースコード生成部22は、DB23のメタ情報(構成情報)を参照し、Empテーブルのカラムに関する情報を得る。なお、データベースのメタ情報を参照するインターフェースは、APIとして用意された既知の技術であり、このAPIを用いてメタ情報を参照し、該当するテーブルのカラムに関する情報を得る。従って、ソースコード生成部22は、メソッド名"executeQuery"、SQL文"SELECT EMPNO,ENAME,SAL FROM EMP"とSQL文を組み立てる。同様に、ソースコード生成部22は、"<query name="executeQuery">"を継承したより下位の階層にある"<query−string></query−string>"及び"<param−attr−list></param−attr−list>"を把握し、タグに収納された要素を組立て途中にある前記SQL文に対して追加する。従って、ソースコード生成部22は、図7に示す発行予定SQL文(メソッド名:"executeQuery(Connection con,Integer sal)"、SQL文:"SELECT EMPNO,ENAME,SAL FROM EMP WHERE SAL=?")を生成する。
また上述の処理同様、ソースコード生成部22は、図5において定義されたメソッド間の継承関係に基づき、"executeQuery"メソッドに含まれるSQL文を継承するメソッドの生成を開始する。より具体的には、ソースコード生成部22は、図5において"<query name="executeQuery">"より下位の階層にあり、クエリの継承を意味するタグ"<optional−query name="executeQueryOrder"></optional−query>"に収納された要素から、場所ID"$order"を属性として持つ要素を探す。従って、ソースコード生成部22は、図5において"place−id="order""である"<query−string>"を持つクエリとして"<optional−query name="executeQueryOrder"></optional−query>"を見つけ、$orderに"ORDER BY ENAME"が埋め込まれた発行予定SQL文を組み立てる。また、ソースコード生成部22は、場所IDに埋め込まれる文字列の中に更に場所IDが定義されている場合、上述の情報処理同様に更に子要素を検索し、継承関係にあるSQL文を組み立てる。
従って、ソースコード生成部22が、DBアクセサ定義ファイル33に基づいて、発行予定SQL文38を組み立てることによって、ユーザ(開発者)は、図4に示したように情報入力画面において、SQL文全てを手書きで入力せずとも、例えばSQL文の一部を入力するだけで、発行予定のSQL文を組み立てることができる。
次に、テーブルの操作に係るプログラムのソースコードで使用する型を決定する処理の詳細を図8及び図9を用いて説明する。図8は、テーブルの操作に係るプログラムのソースコードで使用する型を決定する処理の一例を示す図(その1)である。図9は、型マッピング情報の一例を示す図である。
シーケンスSQ1において、ソースコード生成部22は、DBアクセサ定義ファイル33に基づいて、DB23へ、前記発行予定のSQL文をDB23へ発行し、その発行結果であるテーブルの各カラムのデータの型を問い合わせる。例えば、ソースコード生成部22は、DBアクセサ定義ファイル33に基づいて、図7に記載された発行予定SQL文をDB23へ発行し、EMPテーブルのEMPNOのデータの型についての問い合わせをDB23に対して行う。
続いて、シーケンスSQ2において、ソースコード生成部22は、DB23より、問い合わせの結果(返答)を受け取る。より具体的に説明すると、ソースコード生成部22は、データベースのメタ情報(構成情報)を参照し、前記問い合わせたカラムのデータの型に関する情報を得る。なお、データベースのメタ情報を参照するインターフェースは、APIで用意されており、既知の技術である。前記DB23のメタ情報は、このAPIを用いてメタ情報を参照し、当該カラムのデータの型に関する情報を得ている。例えば、ソースコード生成部22は、上記問合せの結果に対し、DB23のメタ情報を参照して、EMPテーブルのEMPNOのデータの型がNUMERIC(4,0)等という情報を受け取る。
続いて、シーケンスSQ3において、ソースコード生成部22は、問い合わせの結果得られたカラムのデータの型に関する情報(例えば「EMP.EMPNOの型はNUMERIC(4,0)」)に基づいて、図9に示される型マッピング情報34を参照し、テーブルの操作に係るプログラム(より具体的には、レコード格納プログラム37)のソースコードで使用する型を決定する。例えば、ソースコード生成部22は、上記例のようにカラムのデータの型がNUMERICである場合、図9より、NUMERICに対応するレコード格納プログラム37のソースコードで使用する型を「Integer」であると決定する。なお、図9の例では、Javaと、SQLと、の間の型のマッピング情報が記述されている。
DBには一般的に膨大なテーブルとカラムが存在するため、DBを扱うシステムにおいてカラム単位で型をマッピングすることは非常に困難である。本実施形態では、ソースコード生成部22が、発行予定SQL文をDB23へ発行した結果、即ちテーブルのカラムのデータの型を予め問合せており、その問い合わせで得たカラムのデータの型に関する情報と型マッピング情報34を用いて異なる言語間の型のマッピングを行っているので、カラム単位でデータの型をマッピングする必要がない。また、ソースコード生成部22は、DB23に一旦問い合わせを行い、その結果に基づき型マッピング情報34を参照し、異なる言語間の型のマッピングを行っているので、仮にDB23の設計等が変更された場合でも、その変更に対応することができる。つまり、DB23の設計等の変更に伴う、レコード格納プログラム37のソースコードの変更(又は修正)漏れを防ぐことができる。
次に、SQL文の動作検証を行う処理の詳細を、図10を用いて説明する。図10は、SQL文の動作検証を行う処理の一例を示す図である。
シーケンスSQ11において、ソースコード生成部22は、型マッピング情報34よりテストデータ(例えば、0)を取得する。
続いて、シーケンスSQ12において、ソースコード生成部22は、取得したテストデータを用いて、発行予定SQL文38をDB23に対して発行する。
続いて、シーケンスSQ13において、ソースコード生成部22は、DB23より、発行したSQL文に対する結果を受け取る。例えば、SQL文の結果が正常に返ってくる、又はエラーが発生する等がある。)
ソースコード生成部22が、発行予定SQL文38の動作検証をDBアクセスプログラム36、レコード格納プログラム37の作成前に行っておくことによって、これらのプログラムの質を高めることができる。
次に、DBアクセスプログラム36、レコード格納プログラム37のソースコードを生成する処理の詳細を、図11〜図15を用いて説明する。図11は、DBアクセスプログラム、レコード格納プログラムのソースコードを生成する処理の一例を示す図である。図12及び図13は、コードテンプレートの一例を示す図である。図14は、DBアクセスプログラムの一例を示す図である。図15は、レコード格納プログラムの一例を示す図である。
ソースコード生成部22は、発行予定SQL文38の動作検証の結果、発行予定SQL文38が正常に動作すると判断した場合、発行予定SQL文38と、前記決定した型と、図12及び図13に示されるコードテンプレート351と、コードテンプレート352と、に基づいて、図14に示されるようなDBアクセスプログラム36、図15に示されるようなレコード格納プログラム37のソースコードを生成する。ここで、コードテンプレート35は、テーブルの操作に係るプログラムのソースコードのテンプレートである。
従って、上述したように本実施形態によって生成されたDBアクセスプログラム36を実行すると、その実行結果によって得られたレコードはレコード格納プログラム37に格納される。つまり、システム開発者が、DBアクセサ定義出力部21の機能の一部である情報入力画面へ任意のSQL文を入力すると、DBの操作を行うDBアクセスプログラム36が生成され、DBアクセサプログラム36の実行結果はレコード格納プログラム37によって格納される。よって、DBを操作するアプリケーションを作成する場合、これらDBアクセスプログラム36及びレコード格納プログラム37が用意する機能(例えばメソッド、フィールド)を用いればよい。
以上、上述したように、本実施形態によれば、DBを操作するプログラムを含むシステム開発において、分業開発を可能にすると共に、プログラムの質を均一にすること(又はプログラムの質を向上すること)ができる。
<実施形態2>
上述した実施形態では、DB23のテーブルに紐付けて、DBにアクセスするプログラムを生成する例を示した。しかしながら、本実施形態では、例えばレコード格納プログラム(レコード格納クラス)に格納できる対象が必ずDB23に存在するテーブルのカラムと対応付かなくてもよい例を示す。つまり、本実施形態によれば、関数や演算の結果の様なものもレコード格納クラスの一属性として扱うことができるようになる。
なお、以下では、上述した実施形態とは異なる点を主に説明する。
図16は、情報入力画面の一例を示す図(その2)である。本実施形態のDBアクセサ定義出力部21は、41に示されるように、例えば関数や演算の結果のような、DB23のカラムにない項目の情報であっても、情報入力画面を介して、SQL文に関連する情報として受け取り、DBアクセサ定義ファイル33を作成する。ソースコード生成部22は、DBアクセサ定義ファイル33に基づき、発行予定SQL文38を生成する。
図17は、テーブルの操作に係るプログラムのソースコードで使用する型を決定する処理の一例を示す図(その2)である。
シーケンスSQ21において、ソースコード生成部22は、発行予定SQL文38に含まれるSQL文を、DB23に対して発行する。より具体的に説明すると、ソースコード生成部22は、発行予定SQL文38に含まれるSQL文

SELECT ENAME,
EMPNO+100 AS EMPNO_NEW
FROM EMP

等をDB23に対して発行する。
続いて、シーケンスSQ22において、ソースコード生成部22は、DB23より、発行したSQL文に対する結果(返答)を受け取る。より具体的に説明すると、ソースコード生成部22は、DB23より、例えば、「ENAMEはVARCHAR(10,0)、EMPNO_NEWはNUMERIC(4,0)」等の結果を受け取る。
続いて、シーケンスSQ23において、ソースコード生成部22は、受け取った結果(例えば、「ENAMEはVARCHAR(10,0)、EMPNO_NEWはNUMERIC(4,0)」)に基づいて、型マッピング情報34を参照し、テーブルの操作に係るプログラム(より具体的には、レコード格納プログラム37)のソースコードで使用する型を決定する。より具体的に説明すると、ソースコード生成部22は、NUMERIC(4,0)に対応するJava型はInteger、VARCHAR(10,0)に対応するJava型はString等と決定する。
以上、上述したように本実施形態によれば、自由に記述されたSQL文(又はSQL文の一部)から、レコード格納プログラム等を作成するので、テーブルやカラムとして宣言されていない項目(例えば関数の結果や、演算の結果等)について、レコード格納プログラム等を作成することができる。
以上、本発明の好ましい実施形態について詳述したが、本発明は係る特定の実施形態に限定されるものではなく、特許請求の範囲に記載された本発明の要旨の範囲内において、種々の変形・変更が可能である。
情報処理装置のハードウェア構成の一例を示す図である。 情報処理装置の機能構成の一例を示す図である。 DBアクセサ定義ファイルを生成する処理の一例を示す図である。 情報入力画面の一例を示す図(その1)である。 DBアクセス定義ファイルの一例を示す図である。 発行予定SQL文を組み立てる処理の一例を示す図である。 組み立てられた発行予定のSQLの一例を示す図である。 テーブルのアクセスに係るプログラムのソースコードで使用する型を決定する処理の一例を示す図(その1)である。 型マッピング情報の一例を示す図である。 SQL文の動作検証を行う処理の一例を示す図である。 DBアクセスプログラム、レコード格納プログラムのソースコードを生成する処理の一例を示す図である。 コードテンプレートの一例を示す図(その1)である。 コードテンプレートの一例を示す図(その2)である。 DBアクセスプログラムの一例を示す図である。 レコード格納プログラムの一例を示す図である。 情報入力画面の一例を示す図(その2)である。 テーブルのアクセスに係るプログラムのソースコードで使用する型を決定する処理の一例を示す図(その2)である。
符号の説明
1 情報処理装置
11 入力装置
12 表示装置
13 記録媒体ドライブ装置
14 記録媒体
15 ROM
16 RAM
17 CPU
18 インターフェース装置
19 HD

Claims (6)

  1. 情報入力画面を介して入力された、データベースのテーブルの操作に係る操作情報と、データベースのテーブルに対する操作に係るDBアクセスプログラムの関連情報と、に基づいて、アクセス定義ファイルを出力するアクセス定義ファイル出力手段と、
    前記アクセス定義ファイルに基づいて、発行予定のSQL文を組み立てるソースコード生成手段と、
    を有し、
    前記ソースコード生成手段は、前記アクセス定義ファイルに基づいて、前記テーブルの各カラムのデータの型を前記データベースに問い合わせ、問い合わせの結果得られた前記型に基づいて、型マッピング情報を参照し、前記プログラムのソースコードで使用する型を決定することを特徴とする情報処理装置。
  2. 前記アクセス定義ファイル出力手段は、前記操作情報と、前記DBアクセスプログラムの関連情報と、を読み込み、読み込んだ、前記操作情報と、前記DBアクセスプログラムの関連情報と、をタグで収納した記載に変換したアクセス定義ファイルを出力し、
    前記ソースコード生成手段は、前記アクセス定義ファイルを読み込み、前記タグが示す属性情報に基づいて、前記発行予定のSQL文を組み立てることを特徴とする請求項1に記載の情報処理装置。
  3. 前記ソースコード生成手段は、前記型マッピング情報から取得したテストデータを用いて、前記発行予定のSQL文を、前記データベースに対して発行し、前記発行予定のSQL文に係る動作検証を行うことを特徴とする請求項1又は2に記載の情報処理装置。
  4. 前記ソースコード生成手段は、前記動作検証の結果、正常に動作すると判断した場合、前記発行予定のSQL文と、前記決定した型と、前記プログラムのソースコードのテンプレートと、に基づいて、前記プログラムのソースコードを生成することを特徴とする請求項3に記載の情報処理装置。
  5. 情報処理装置における情報処理方法であって、
    情報入力画面を介して入力された、データベースのテーブルの操作に係る操作情報と、データベースのテーブルに対する操作に係るDBアクセスプログラムの関連情報と、に基づいて、アクセス定義ファイルを出力するアクセス定義ファイル出力ステップと、
    前記アクセス定義ファイルに基づいて、発行予定のSQL文を組み立てるソースコード生成ステップと、
    を含み、
    前記ソースコード生成ステップでは、前記アクセス定義ファイルに基づいて、前記テーブルの各カラムのデータの型を前記データベースに問い合わせ、問い合わせの結果得られた前記型に基づいて、型マッピング情報を参照し、前記プログラムのソースコードで使用する型を決定することを特徴とする情報処理方法。
  6. コンピュータを、
    情報入力画面を介して入力された、データベースのテーブルの操作に係る操作情報と、データベースのテーブルに対するアクセスに係るプログラムの関連情報と、に基づいて、アクセス定義ファイルを出力するアクセス定義ファイル出力手段と、
    前記アクセス定義ファイルに基づいて、発行予定のSQL文を組み立てるソースコード生成手段と、
    して機能させるためのプログラムであって、
    前記ソースコード生成手段は、前記アクセス定義ファイルに基づいて、前記テーブルの各カラムのデータの型を前記データベースに問い合わせ、問い合わせの結果得られた前記型に基づいて、型マッピング情報を参照し、前記プログラムのソースコードで使用する型を決定することを特徴とするプログラム。
JP2007255529A 2007-09-28 2007-09-28 情報処理装置、情報処理方法及びプログラム Active JP5190241B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2007255529A JP5190241B2 (ja) 2007-09-28 2007-09-28 情報処理装置、情報処理方法及びプログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2007255529A JP5190241B2 (ja) 2007-09-28 2007-09-28 情報処理装置、情報処理方法及びプログラム

Publications (2)

Publication Number Publication Date
JP2009086992A JP2009086992A (ja) 2009-04-23
JP5190241B2 true JP5190241B2 (ja) 2013-04-24

Family

ID=40660340

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2007255529A Active JP5190241B2 (ja) 2007-09-28 2007-09-28 情報処理装置、情報処理方法及びプログラム

Country Status (1)

Country Link
JP (1) JP5190241B2 (ja)

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH01232428A (ja) * 1988-03-14 1989-09-18 Oki Electric Ind Co Ltd データベース問い合わせ処理装置
JPH08263277A (ja) * 1995-03-22 1996-10-11 Fujitsu Ltd データ操作プログラムの自動生成装置
JPH11232090A (ja) * 1998-02-16 1999-08-27 Mitsubishi Electric Corp データベースシステムの自動生成システム
JP2001256076A (ja) * 2000-03-08 2001-09-21 Ricoh Co Ltd テストデータ生成装置、テストデータ生成方法及び記録媒体
JP2003006217A (ja) * 2001-06-26 2003-01-10 Technical Syndicate Co Ltd データベース構築支援プログラム及びデータベースを利用したWebアプリケーション構築プログラム
JP2006209655A (ja) * 2005-01-31 2006-08-10 Niit Technologies Kk システム開発支援方法及びシステム開発支援プログラム
JP4939007B2 (ja) * 2005-08-01 2012-05-23 ケン・システムコンサルティング株式会社 システム設計支援プログラム

Also Published As

Publication number Publication date
JP2009086992A (ja) 2009-04-23

Similar Documents

Publication Publication Date Title
US10162611B2 (en) Method and apparatus for business rule extraction
US8739116B2 (en) Development environment configured to generate application source code from database objects
US20170228426A1 (en) Managing data queries
CN101727320B (zh) 用于识别数据库更改对应用的影响的方法和系统
US20160170719A1 (en) Software database system and process of building and operating the same
KR101213798B1 (ko) 복합 데이터 액세스
KR102330547B1 (ko) 보고 생성 방법
CN108762743B (zh) 一种数据表操作代码生成方法及装置
US7792851B2 (en) Mechanism for defining queries in terms of data objects
JP2002508561A (ja) 自動コンフィギュレーション発生
IL143823A (en) Method and facility to execute code of PL / SQL objects stored in a database
US20120266131A1 (en) Automatic program generation device, method, and computer program
US11611627B2 (en) Action flow fragment management
EP3314409B1 (en) Tracing dependencies between development artifacts in a software development project
Mueller Microsoft ADO. NET Entity Framework Step by Step
EP1909170B1 (en) Method and system for automatically generating a communication interface
Jovanovic et al. Aggregate data modeling style
JP5190241B2 (ja) 情報処理装置、情報処理方法及びプログラム
US20080022258A1 (en) Custom database system and method of building and operating the same
US8631393B2 (en) Custom database system and method of building and operating the same
US11805181B2 (en) Migration of software extensions
US20230128661A1 (en) Information retrieval framework
Tummala Data warehouse modeler (A CASE Tool): redesign and implementation of framework
JP2009217635A (ja) 検索条件作成方法、検索条件作成装置及びプログラム
Concepcion VirHoLex 2.0 (Virus-Host Interaction Lexicon)

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20100922

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20120914

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20121016

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20121217

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20130115

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20130128

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20160201

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Ref document number: 5190241

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250