サンプルプロジェクト (サービス作成-jsp)

XPLATFORMプログラムで使うServer Side Serviceを作成してみましょう。

XPLATFORMプログラムでは、画面(Form)から入力しされたデータをサーバーに送る時に、 “Transaction”関数が使われます。 該当“Transaction”関数は、入力された変数とDatasetを XML Formatに加工し、呼び出したJSPに伝えます。 呼び出したJSPの結果は、 “Transaction” 呼び出しの時に登録したコールバック関数から、ErrorCode、ErrorMsg 引数ともに確認可能です。

Server Sideに作成されるサービスは、JSP、Java Servlet、ASP、ASP.NET、PHP などの言語を使うことができます。 この例題では、画面(Form)から入力されたデータをJSPを使って Database(MySql)にアクセスして保存します。 作成されたサービスは、ウェブブラウザでは、入力値をDataSet形式で伝達することができません。従って XPLATFORM画面を通してこそテストができます。

一般的に使われるサーバー構成の例

サービス作成言語 : Java 系列(Java Servlet、JSP)、ASP 系列(ASP、ASP.NET)

ウェブサーバー : Apache、WASに含まれているウェブサーバー

データベース(Database) : Oracle、MS SQLServer、Sybase、DB2

WAS(Web Application Server) : WebLogic、WebSphere、JEUS、Tomcat、Resin

往々にしてデータベース(Database)の接続モジュールが必要です。
サービスを作成する時は、USXtudioを使わずに、一般ウェブエディター(eclipse、Visual Studio .NET、NotePad、…)を使います。
この例題は、JSPを使ってTomcatでの実行できるように実装されました。

照会サービス

<!-- 3.XPlatform XAPI(ライブラリ) 宣言 -->
<!-- 2. Java ライブラリを宣言-->
<!-- 1. 基本JSP作成 -->
<%
/** 4. XPlatform 基本オブジェクト(PlatformData)生成 **/
/** 7-1. ErrorCode,ErrorMsg 処理 **/
try {
/** 5-1. Database Connection **/
try {
/** 5-2. SQL文の作成 **/
/** SELECT処理 **/
/** 6. Dataset 生成とDataをDatasetに保存 **/
/** 7-2. ErrorCode,ErrorMsg 処理 **/
} catch (SQLException e) {
/** 7-3. ErrorCode,ErrorMsg 処理 **/
}
/** 5-3. Database Close**/
} catch (Throwable th) {
/** 8-4. ErrorCode,ErrorMsg 処理 **/
}
/** 8-5. ErrorCode,ErrorMsg 処理 **/
/** 9. XML output オブジェクト(PlatformResponse) 生成 **/
%>

全体コード (search.jsp)

<!-- 3.XPlatform XAPI(ライブラリ) 宣言 -->
<%@ page import="com.tobesoft.xplatform.data.*" %>
<%@ page import="com.tobesoft.xplatform.tx.*" %>
<!-- 2. Java ライブラリを宣言 -->
<%@ page import="java.sql.*"%>
<!-- 1. 基本 JSP 作成 -->
<%@ page contentType="text/xml; charset=UTF-8" %>
<%!
public String rsGet(ResultSet rs,String id)throws Exception{
if(rs.getString(id) == null)return "";
else return  rs.getString(id);
}
public boolean isEmpty(String str) {
if (str == null)return true;
if ("".equals(str.trim()))return true;
return false;
}
%>
<%
out.clearBuffer();

/** 4.XPLATFORM 基本オブジェクト(PlatformData)生成 **/
PlatformData pdata = new PlatformData();

/** 7-1. ErrorCode,ErrorMsg 宣言部分 **/
int nErrorCode = 0;
String strErrorMsg = "START";
/** 5-1.Database 接続 **/
try {
Connection con = null;
Statement stmt = null;
ResultSet rs = null;

try {
String url = "JDBC:mysql://localhost:3306/demo";
Class.forName("com.mysql.jdbc.Driver"); 
con = DriverManager.getConnection(url,"demo","1234");
stmt = con.createStatement();

/** 5-2.SQL文の作成 **/
String sql = " SELECT * FROM customer " ;

if (!isEmpty(request.getParameter("keyword"))){
sql += " WHERE LCASE(name) like LCASE('%" + request.getParameter("keyword")+ "%') " ;
}
rs = stmt.executeQuery(sql);

/** 6. Dataset 生成及び DataをDatasetに保存 **/
DataSet ds = new DataSet("customers");
ds.addColumn("id",DataTypes.INT);
ds.addColumn("name",DataTypes.STRING,16);
ds.addColumn("email",DataTypes.STRING,32);
ds.addColumn("birthday",DataTypes.STRING,8);
ds.addColumn("phone",DataTypes.STRING,16);
ds.addColumn("home_addr",DataTypes.STRING,256);
ds.addColumn("company",DataTypes.STRING,32);
ds.addColumn("jobtitle",DataTypes.STRING,32);
ds.addColumn("busi_phone",DataTypes.STRING,16);
ds.addColumn("busi_addr",DataTypes.STRING,256);

int row = 0;
while(rs.next()){
row = ds.newRow();
ds.set(row,"id",rs.getInt("id"));
ds.set(row,"name",rsGet(rs,"name"));
ds.set(row,"email",rsGet(rs,"email"));
ds.set(row,"birthday",rsGet(rs,"birthday"));
ds.set(row,"phone",rsGet(rs,"phone"));
ds.set(row,"home_addr",rsGet(rs,"home_addr"));
ds.set(row,"company",rsGet(rs,"company"));
ds.set(row,"jobtitle",rsGet(rs,"jobtitle"));
ds.set(row,"busi_phone",rsGet(rs,"busi_phone"));
ds.set(row,"busi_addr",rsGet(rs,"busi_addr"));
}
pdata.addDataSet(ds);

/** 7-2. ErrorCode,ErrorMsg 処理 **/
nErrorCode = 0;
strErrorMsg = "SUCC";

} catch (SQLException e) {
/** 7-3. ErrorCode,ErrorMsg 処理 **/
nErrorCode = -1;
strErrorMsg = e.getMessage();
}
/** 5-3. Database Close**/
if(rs != null){try{rs.close();} catch(Exception e){
nErrorCode = -1; strErrorMsg = e.getMessage();}}
if(stmt != null){try{stmt.close();}catch(Exception e){
nErrorCode = -1; strErrorMsg = e.getMessage();}}
if(con != null){try{con.close();} catch(Exception e){
nErrorCode = -1; strErrorMsg = e.getMessage();}}
} catch (Throwable th) {
/** 7-4. ErrorCode,ErrorMsg 処理 **/
nErrorCode = -1;
strErrorMsg = th.getMessage();
}
/** 7-5. ErrorCode,ErrorMsg 処理 **/
VariableList varList = pdata.getVariableList();
varList.add("ErrorCode",nErrorCode);
varList.add("ErrorMsg",strErrorMsg);
/** 8. XML output オブジェクト(PlatformResponse) 生成 **/
HttpPlatformResponse res = new HttpPlatformResponse(response);
res.setData(pdata);
res.sendData();
%>

コード分析

コードの前半部分です。

<!-- 1. 基本 JSP 作成 -->
<%@ page contentType="text/xml; charset=UTF-8" %>
<%!
public String rsGet(ResultSet rs,String id)throws Exception{
if(rs.getString(id) == null)return "";
else return rs.getString(id);
}
public boolean isEmpty(String str) {
if (str == null)return true;
if ("".equals(str.trim()))return true;
return false;
}
%>
<%
/** データ処理のために実装されなければならない部分 **/
%>

Java ライブラリの宣言

JSP サービスを作成するために、javaの基本ライブラリを宣言します。
Javaの基本オブジェクトとウェブサーバーのログ管理のために宣言されなければならないライブラリは、次の通りです。
<!-- 2. Java ライブラリの宣言 -->
<%@ page import = "java.sql.*" %>
<%@ page import="org.apache.commons.logging.*" %>

XPLATFORM XAPI(ライブラリ) 宣言

XML Dataを生成する時は、XPLATFORMが使うFormatを遵守しなければなりません。
XML Format Dataに関しては、“xerces”のようなパーサー(Parser)をご利用になったり、直接開発しても構いません。
しかし、XPLATFORM Java用ライブラリ(XPLATFORM XAPI)をご利用の場合、XPLATFORM 専用オブジェクトを作って用いるので、 XML Data Formatを特に解析せずともオブジェクトの機能を利用して、手軽にデータを抽出することができます。

XPLATFORM XAPIを宣言するスクリプトは次の通りです。

<!-- 3.XPLATFORM XAPI(ライブラリ) 宣言 -->
<%@ page import="com.tobesoft.xplatform.data.*" %>
<%@ page import="com.tobesoft.xplatform.tx.*" %>

XPLATFORM基本オブジェクト(PlatformData)の生成

データを処理するための基本オブジェクトを宣言します。
XPLATFORMプログラムから受け取ったXMLデータをパーシングし、Dataset形式で、 PlatformDataに保管されます。
XML Dataは、一度にいくつかのDatasetを受け取ることができます。
データベースからSQL文を実行して得た結果は、Datasetに保管されます。
Datasetはいくつかを宣言して作ることができ、一回の通信でいくつかのDatasetを作って一度で受け取ることもできます。
引数や返値に使われる変数も VariableListに保管されます。
この時作成されたDatasetとVariableListは、PlatformDataオブジェクトの中に含まれます。
したがって、変数(VariableList)やDatasetを使うのであれば、PlatformDataの宣言が必ず必要です。

PlatformDataを宣言するスクリプトは次の通りです。

out.clearBuffer();

/** 4.XPLATFORM 基本オブジェクト(PlatformData)の生成 **/
PlatformData pdata = new PlatformData();

Database接続 & SQL実行構文の作成

/** 5-1.Database Connection **/
/******* JDBC Connection *******/
try {
Connection conn = null;
Statement stmt = null;
ResultSet rs = null;
try{
String url = "JDBC:mysql://localhost:3306/demo";
Class.forName("com.mysql.jdbc.Driver"); 
conn = DriverManager.getConnection(url,"demo","1234");
stmt = conn.createStatement();

/** 5-2.SQL 実行構文の作成 **/
String sql = " SELECT * FROM customer " ;

// 照会条件がある場合 
if (!isEmpty(request.getParameter("keyword"))){
sql += " WHERE LCASE(name) like LCASE('%" + request.getParameter("keyword")+ "%') " ;
}
rs = stmt.executeQuery(sql);

} catch (SQLException e) {

}
/** 5-3. Database Close**/
/******** JDBC Close ********/
if(rs != null){try{rs.close();} 
catch(Exception e){nErrorCode = -1; strErrorMsg = e.getMessage();}}
if(stmt != null){try{stmt.close();}
catch(Exception e){nErrorCode = -1; strErrorMsg = e.getMessage();}}
if(con != null){try{con.close();} 
catch(Exception e){nErrorCode = -1; strErrorMsg = e.getMessage();}}
}catch (Throwable th) {}

Dataset生成 & 照会した DataをDatasetに保存

ResultSetである “rs”に入っているデータをそのままXPLATFORMに送信してもデータとして認識できません。XPLATFORMが認識できるXML Formatに加工して送る必要があります。
この過程は少々手が掛かりえるので、XPLATFORMライブラリが提供する専用オブジェクトであるDataSetを利用します。DataSetは、母体であるPlatformDataに含まれ、PlatformDataの機能を利用すれば、手軽にXML Format Dataに加工することができます。
この例題では、基本機能をご覧頂くためにResultSetの値をカラム単位ごとにDatasetへ移す過程を例示いたします。しかし、実際のプロジェクトで活用する時には、この部分を共通関数で作って活用すれば、コーディング量を減らすことができます。

ResultSet(“rs”)のデータをDataSetに入れ替えるためのスクリプトは次の通りです。

/** 6. Dataset生成 & 照会したDataをDatasetに保存 **/

/********* Dataset生成 **********/

DataSet ds = new DataSet("customers");
ds.addColumn("id",DataTypes.INT);
ds.addColumn("name",DataTypes.STRING,16);
ds.addColumn("email",DataTypes.STRING,32);
ds.addColumn("birthday",DataTypes.STRING,8);
ds.addColumn("phone",DataTypes.STRING,16);
ds.addColumn("home_addr",DataTypes.STRING,32);
ds.addColumn("company",DataTypes.STRING,32);
ds.addColumn("jobtitle",DataTypes.STRING,32);
ds.addColumn("busi_phone",DataTypes.STRING,16);
ds.addColumn("busi_addr",DataTypes.STRING,256);


int row = 0;
while(rs.next()){
row = ds.newRow();
ds.set(row,"id",rs.getInt("id"));
ds.set(row,"name",rsGet(rs,"name"));
ds.set(row,"email",rsGet(rs,"email"));
 ds.set(row,"birthday",rsGet(rs,"birthday"));
ds.set(row,"phone",rsGet(rs,"phone"));
ds.set(row,"home_addr",rsGet(rs,"home_addr"));
ds.set(row,"company",rsGet(rs,"company"));
ds.set(row,"jobtitle",rsGet(rs,"jobtitle"));
ds.set(row,"busi_phone",rsGet(rs,"busi_phone"));
ds.set(row,"busi_addr",rsGet(rs,"busi_addr"));
}
// DataSetをPlatformDataに追加
pdata.addDataSet(ds);

Errorcode,ErrorMsg の処理

上の過程で基本的なデータの処理が実装されました。
しかし、すべての場合に例外状況が発生することがあるので、エラーが発生した時処理する部分は、次のようにスクリプトで処理するのが望ましいです。
/** 7-1. ErrorCode,ErrorMsg 宣言部分 **/
int nErrorCode = 0;
String strErrorMsg = "START";
/** 7-2. ErrorCode,ErrorMsg の処理 **/
// 処理が成功した場合
nErrorCode = 0;
strErrorMsg = "SUCC";
/** 7-3. ErrorCode,ErrorMsg の処理 **/
// 処理が失敗した場合
nErrorCode = -1;
strErrorMsg = e.getMessage();
/** 7-4. ErrorCode,ErrorMsg の処理 **/
// 処理が失敗した場合
nErrorCode = -1;
strErrorMsg = th.getMessage();
/** 7-5. ErrorCode,ErrorMsg の処理 **/
//VariableList 参照
VariableList varList = pdata.getVariableList();
// VariableListに値を直接追加
varList.add("ErrorCode",nErrorCode);
varList.add("ErrorMsg",strErrorMsg);

XML output オブジェクト(PlatformResponse)作成

先の過程を通じてデータをデータベースから抽出し、Datasetに入れます。
エラーメッセージもVariableListに登録しました。DataSetとVariableListはPlatformDataのメンバーなので、JSPの実行結果値はPlatformDataオブジェクトに入っています。 以下では、PlatformDataのデータをXPLATFORMが認識できるXML Formatに抽出し、転送する部分を例示いたします。

データを転送する機能を簡単に示すために、XPLATFORMライブラリのPlatformResponse オブジェクトを作成し、PlatformDataからデータを出力させます。そのスクリプトは、次の通りです。

/** 8. XML output オブジェクト(PlatformResponse) 作成 **/
// HttpServletResponseを利用してHttpPlatformResponse生成
HttpPlatformResponse res = new HttpPlatformResponse(response);
res.setData(pdata);
// データ送信
res.sendData();

保存サービス

全体コード (save.jsp)

<!-- 3.XPLATFORM XAPI(ライブラリ) 宣言 -->
<%@ page import="com.tobesoft.xplatform.data.*" %>
<%@ page import="com.tobesoft.xplatform.tx.*" %>
<!-- 2. Java ライブラリを 宣言 -->
<%@ page import="java.sql.*"%>
<!-- 1. 基本JSP作成 -->
<%@ page contentType="text/xml; charset=UTF-8" %>

<%!
public String nvl(String id)throws Exception{
if(id == null )return "";
else return id;
}
public boolean isEmpty(String str) {
if (str == null)return true;
if ("".equals(str.trim()))return true;
return false;
}
%>

<%
out.clearBuffer();

/** PlatformRequest作成& Data 読み **/
/** HttpServletRequestを利用してHttpPlatformRequest生成 */
HttpPlatformRequest req = new HttpPlatformRequest(request);

/** XML データ分析 */
req.receiveData();

/** データをPlatformData形式に保存 */
PlatformData i_xpData = req.getData();

/** PlatformDataから Dataset抽出 */
DataSet inDs = i_xpData.getDataSet("customers");

/** XPLATFORM 基本オブジェクト(PlatformData)生成 **/
PlatformData pdata = new PlatformData();

/** ErrorCode,ErrorMsg 宣言部分 **/
int nErrorCode = 0;
String strErrorMsg = "START";
/** Database接続 **/
try {
Connection con = null;
Statement stmt = null;
ResultSet rs = null;

try {
String url = "JDBC:mysql://localhost:3306/demo";
Class.forName("com.mysql.jdbc.Driver"); 
con = DriverManager.getConnection(url,"demo","1234");
stmt = con.createStatement();

/** SQL 実行構文の作成 **/
String sql = "";
/** トランザクション管理 */
con.setAutoCommit(false);
int rowType=0;
int i=0;
/** Datasetを INSERT,UPDATE処理 **/
for ( i=0 ; i <inDs.getRowCount() ;i++){
rowType = inDs.getRowType(i);
if( rowType == DataSet.ROW_TYPE_INSERTED ){
sql = " INSERT INTO customer " 
+ " (name,email,birthday,phone,home_addr"
+ " , company,jobtitle,busi_phone,busi_addr ) "
+ " VALUES ( ' " 
+ nvl(inDs.getString(i,"name")) + "' ,'"
+ nvl(inDs.getString(i,"email")) + "' ,'"
+ nvl(inDs.getString(i,"birthday")) + "' ,'"
+ nvl(inDs.getString(i,"phone")) + "' ,'"
+ nvl(inDs.getString(i,"home_addr")) + "' ,'"
+ nvl(inDs.getString(i,"company")) + "' ,'"
+ nvl(inDs.getString(i,"jobtitle")) + "' ,'"
+ nvl(inDs.getString(i,"busi_phone")) + "' ,'"
+ nvl(inDs.getString(i,"busi_addr")) + "' ) " ;
stmt.executeUpdate(sql);
}else if( rowType == DataSet.ROW_TYPE_UPDATED ){
sql = " UPDATE customer SET " 
+ " name = ' " + nvl(inDs.getString(i,"name")) + "' ,"
+ " email = ' " + nvl(inDs.getString(i,"email")) + "' ,"
+ " birthday = ' " + nvl(inDs.getString(i,"birthday")) + "' ," 
+ " phone = ' " + nvl(inDs.getString(i,"phone")) + "' ,"
+ " home_addr = ' " + nvl(inDs.getString(i,"home_addr")) + "' ,"
+ " company = ' " + nvl(inDs.getString(i,"company")) + "' ,"
+ " jobtitle = ' " + nvl(inDs.getString(i,"jobtitle")) + "' ,"
+ " busi_phone = ' " + nvl(inDs.getString(i,"busi_phone")) + "' ," 
+ " busi_addr = ' " + nvl(inDs.getString(i,"busi_addr")) + "' "
+ " WHERE id = " + inDs.getInt(i,"id") ;
stmt.executeUpdate(sql);
}
}

/** Datasetを DELETE 処理 **/
for( i = 0 ; i< inDs.getRemovedRowCount() ; i++ ){
sql = " DELETE FROM customer WHERE id = " + Integer.parseInt(inDs.getRemovedData(i,"id").toString()) ;
stmt.executeUpdate(sql);
}
/** トランザクション管理 */
con.commit();

/** 7-2. ErrorCode,ErrorMsg の処理 **/
nErrorCode = 1;
strErrorMsg = "SUCC";
} catch (SQLException e) {
/** 7-3. ErrorCode,ErrorMsg の処理 **/
nErrorCode = -1;
strErrorMsg = e.getMessage();
}
/** 5-3. Database Close**/
if(rs != null){try{rs.close();} catch(Exception e){
nErrorCode = -1; strErrorMsg = e.getMessage();}}
if(stmt != null){try{stmt.close();}catch(Exception e){
nErrorCode = -1; strErrorMsg = e.getMessage();}}
if(con != null){try{con.close();} catch(Exception e){
nErrorCode = -1; strErrorMsg = e.getMessage();}}
} catch (Throwable th) {
/** 7-4. ErrorCode,ErrorMsg の処理 **/
nErrorCode = -1;
strErrorMsg = th.getMessage();
}
/** 7-5. ErrorCode,ErrorMsg の処理 **/
VariableList varList = pdata.getVariableList();
varList.add("ErrorCode",nErrorCode);
varList.add("ErrorMsg",strErrorMsg);
/** 8. XML output オブジェクト(PlatformResponse)作り **/
HttpPlatformResponse res = new HttpPlatformResponse(response);
res.setData(pdata);
res.sendData();
%>

コード分析

コードの前項部分です。

<!-- 1. 基本JSP作成 -->
<%@ page contentType="text/xml; charset=UTF-8" %>
<%!
public String nvl(String id)throws Exception{
if(id == null )return "";
else return id;
}
public boolean isEmpty(String str) {
if (str == null)return true;
if ("".equals(str.trim()))return true;
return false;
}%>
<%
/** データ処理のため実装しなければならない部分 **/
%>

Java ライブラリ宣言

Java ライブラリの宣言”の内容と同じです。

XPLATFORM XAPI(ライブラリ) 宣言

XPLATFORM XAPI(ライブラリ) 宣言”の内容と同じです。

XPLATFORM 基本オブジェクト(PlatformData) 生成

XPLATFORM基本オブジェクト(PlatformData)の生成”内容と同じです。

XML inputオブジェクト(PlatformRequest)作成 & Data読み取り

XPLATFORMプログラムから受け取ったデータはXML Formatデータです。
これを直接パーシングして使うこともできます。
ただし、XPLATFORMライブラリを利用すれば、簡単に実装することができます。

PlatformRequestオブジェクトを生成するスクリプトは、次の通りです。

/** 5.PlatformRequest 作り & Data 読み **/
// HttpServletRequestを利用して HttpPlatformRequest生成
HttpPlatformRequest req = new HttpPlatformRequest(request);
// XML データ分析
req.receiveData();
// データをPlatformData形態に保存
PlatformData i_xpData = req.getData();
// PlatformDataからDataset抽出
DataSet inDs = i_xpData.getDataSet("customers");
%>

Database接続 & SQL実行構文の作成

/** 6-1.Database接続 **/
try {
/******* JDBC Connection *******/
Connection conn = null;
Statement stmt = null;
try{
String url = "JDBC:mysql://localhost:3306/demo";
Class.forName("com.mysql.jdbc.Driver"); 
con = DriverManager.getConnection(url,"demo","1234");
stmt = con.createStatement();
} catch (SQLException e) {

}
/******** JDBC Close ********/
if ( stmt != null ) try { stmt.close(); } catch (Exception e) {
nErrorCode = -1; strErrorMsg = e.getMessage();}
if ( con != null ) try { con.close(); } catch (Exception e) {
nErrorCode = -1; strErrorMsg = e.getMessage();}
}catch (Throwable th) {

}
/** 6-2. SQL文の作成 **/
String sql = "";
// トランザクション管理
con.setAutoCommit(false);
int rowType=0;
int i=0;
/** Dataset을 INSERT,UPDATE処理 **/
for ( i=0 ; i <inDs.getRowCount() ;i++){
rowType = inDs.getRowType(i);
if( rowType == DataSet.ROW_TYPE_INSERTED ){
sql = " INSERT INTO customer " 
+ " (name,email,birthday,phone,home_addr"
+ " , company,jobtitle,busi_phone,busi_addr ) "
+ " VALUES ( ' " 
+ nvl(inDs.getString(i,"name")) + " ' ,' "
+ nvl(inDs.getString(i,"email")) + " ' ,' "
+ nvl(inDs.getString(i,"birthday")) + " ' ,' "
+ nvl(inDs.getString(i,"phone")) + " ' ,' "
+ nvl(inDs.getString(i,"home_addr")) + " ' ,' "
+ nvl(inDs.getString(i,"company")) + " ' ,' "
+ nvl(inDs.getString(i,"jobtitle")) + " ' ,' "
+ nvl(inDs.getString(i,"busi_phone")) + " ' ,' "
+ nvl(inDs.getString(i,"busi_addr")) + " ' ) " ;
stmt.executeUpdate(sql);
}else if( rowType == DataSet.ROW_TYPE_UPDATED ){
sql = " UPDATE customer SET " 
+ " name = ' " + nvl(inDs.getString(i,"name")) + " ' , "
+ " email = ' " + nvl(inDs.getString(i,"email")) + " ' , "
+ " birthday = ' " + nvl(inDs.getString(i,"birthday")) + " ' , " 
+ " phone = ' " + nvl(inDs.getString(i,"phone")) + " ' , "
+" home_addr = ' " + nvl(inDs.getString(i,"home_addr")) + " ' , "
+ " company = ' " + nvl(inDs.getString(i,"company")) + " ' , "
+" jobtitle = ' " + nvl(inDs.getString(i,"jobtitle")) + " ' , "
+" busi_phone = ' " + nvl(inDs.getString(i,"busi_phone"))+ " ' , " 
+" busi_addr = ' " + nvl(inDs.getString(i,"busi_addr"))+ " ' "
+ " WHERE id = " + inDs.getInt(i,"id") ;
stmt.executeUpdate(sql);
}
}
/** DatasetをDELETE処理 **/
for( i = 0 ; i< inDs.getRemovedRowCount() ; i++ ){
sql = " DELETE FROM customer WHERE id = " + Integer.parseInt(inDs.getRemovedData(i,"id").toString()) ;
stmt.executeUpdate(sql);
}
// トランザクション管理
con.commit();

Errorcode,ErrorMsg の処理

"Errorcode,ErrorMsg の処理"と同じです。

XML outputオブジェクト(PlatformResponse)作成

"XML output オブジェクト(PlatformResponse)作成"と同じです。