上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。




以前の記事でJAVAFLEXの連携でS2BlazeDSを使用しましたが、
今回はS2BlazeDSを使用してFlexからJAVAのメソッドを呼び出しデータベースのフィールドの値を返すサンプルを試してみます。


記事が長くなったので、3回に分けて記載しています。
【FLEX】FLEXとJAVAの連携S2BlazeDS(データベース接続-JAVA設定編)
【FLEX】FLEXとJAVAの連携S2BlazeDS(データベース接続-FLEX編)


FLEXとJAVA連携 データベース接続の準備


S2BlazeDSを使用する事からSAStrutsとS2JDBCでデータベース連携を行います。
SAStruts(Super Agile Struts)
Seasar2 - S2JDBC

本サンプルは下記で記載したサンプルが動作している環境を元に作成しています。
【Flex】JAVAとFlexの連携1(S2BlazeDS 設定編)
【Flex】JAVAとFlexの連携2(JAVA編)
【Flex】JAVAとFlexの連携3(Flex編)


接続するテーブルの作成


接続するデータベースはPostgreSQLを使用しています。

CREATE DATABASE sample_db
WITH OWNER = postgres
ENCODING = 'UTF8';

CREATE TABLE user_tbl
(
user_id character varying NOT NULL,
user_name character varying,
CONSTRAINT pk_sample_id PRIMARY KEY (user_id)
)


Flexから呼ばれるサービスクラスの作成


■src/main/java
■パッケージ:sample.service
■クラス名:SampleService
package sample.service;

import sample.db.entity.UserEntity;
import sample.db.service.UserService;

public class SampleService {
/**
* ユーザーサービス
*/
public UserService userService;

/**
* Flexから呼ばれるサービス。
* Flexから渡されたユーザーIDを元にユーザー名を返します。
* @param user_id
* @return ユーザー名
*/
public String getUserName(String user_id) {
UserEntity userEntity = userService.getUserName(user_id);
return userEntity.user_name;
}
}

FlexからgetUserNameメソッドにユーザーIDを渡し、データベースと接続し結果を返すサービスクラスUserServiceを呼び出しています。

S2JDBCを使ったデータベース操作


■src/main/java
■パッケージ:sample.db.service
■クラス名:UserService
package sample.db.service;

import org.seasar.extension.jdbc.JdbcManager;
import sample.db.entity.UserEntity;

public class UserService {
public JdbcManager jdbcManager;
/**
* ユーザーIDからユーザー名を取得します。
* @return ユーザー名
*/
public UserEntity getUserName(String user_id){
return jdbcManager.from(UserEntity.class).where("user_id = ?", user_id).getSingleResult();
}
}

jdbcManagerを使ってSQL文を自動生成し、実行結果をUserEntity.classに格納します。
S2JDBCについては下記を参照してください。
Seasar2 - S2JDBC

次にユーザーテーブルのエンティティクラスを作成します。
作成したユーザーテーブルのフィールド名と同じ変数を作成しています。
package sample.db.entity;

import javax.persistence.Entity;
/**
* ユーザーテーブルエンティティ
*/
@Entity(name = "user_tbl")
public class UserEntity {
/**
* ユーザーID
*/
public String user_id;
/**
* ユーザー名
*/
public String user_name;
}

エンティティについては下記を参照してください。
Seasar2 - S2JDBC - エンティティ

次はJAVA側の設定ファイルを編集します。
【FLEX】FLEXとJAVAの連携S2BlazeDS(データベース接続-JAVA設定編) 少しでも参考になれば応援お願いします。












上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。