회원가입은 아이디, 비밀번호, 이름 등의 정보를 받아서
RemoteObject를 통해 Join메소드를 호출하기만 하면 끝입니다 ^^
그냥 값만 넘겨주면 자바클래스에서 처리를 합니다.
[code]
public int Join(String id, String pwd, String name, int age, String sex, String tel)
{
Connection con = null;
PreparedStatement pstmt = null;
ResultSet rs = null;
try {
String jdbcDriver = "jdbc:apache:commons:dbcp:/pool";
con = DriverManager.getConnection(jdbcDriver);
// 입력한 ID와 같은 ID를 추출(이미있는 id인지 확인위함)
pstmt = con.prepareStatement("SELECT id FROM bs_Member WHERE id = ?");
pstmt.setString(1, id);
rs = pstmt.executeQuery();
if (rs.next()) {
return 2;
} else {
// 신규등록을 위해 INSERT문을 이용해 DB에 삽입
pstmt = con.prepareStatement(
"INSERT INTO bs_Member (id, pwd, name, age, sex, tel) " +
"VALUES (?, ?, ?, ?, ?, ?)");
pstmt.setString(1, id);
pstmt.setString(2, pwd);
pstmt.setString(3, name);
pstmt.setInt(4, age);
pstmt.setString(5, sex);
pstmt.setString(6, tel);
pstmt.executeUpdate();
return 1;
}
} catch (SQLException e) {
e.printStackTrace();
return 0;
} finally {
if (rs != null) try { rs.close(); } catch(SQLException ex) {}
if (pstmt != null) try { pstmt.close(); } catch(SQLException ex) {}
if (con != null) try { con.close(); } catch(SQLException ex) {}
}
}
[/code]
이미 있는 ID인지 확인을 위해 검사해서 ID가 있으면 2를 리턴, 없으면 DB에 삽입 후에 1을 리턴합니다.
FLEX로 가봅시다.
[code]
<?xml version="1.0" encoding="utf-8"?>
<mx:Canvas xmlns:mx="http://www.adobe.com/2006/mxml" width="100%"
height="100%" xmlns:comp="*" backgroundColor="#c0c0c0" backgroundAlpha="0.7"
creationComplete="initWindow()">
<mx:Script>
<![CDATA[
import mx.rpc.events.ResultEvent;
import mx.rpc.events.FaultEvent;
import mx.rpc.remoting.RemoteObject;
import mx.controls.Alert;
private function initWindow():void {
joinwindow.x = this.width / 2 - 150;
joinwindow.y = this.height / 2 - 200;
}
private function RequestJoin():void {
var srv:RemoteObject = new RemoteObject();
srv.destination = "booksystem";
/*
아이디 길이등의ㅣ 검사문-_-; 귀찮아서-_-;
*/
if (sextext.text == "남" || sextext.text == "여"){
srv.Join(
idtext.text, pwtext.text,
nametext.text, agetext.text, sextext.text, teltext.text);
} else {
Alert.show("남 또는 여 라고 입력하세요!");
return;
}
srv.addEventListener("result", resultHandler);
srv.addEventListener("fault", faultHandler);
}
private function resultHandler(event:ResultEvent):void {
var result:int = int(event.result);
switch (result) {
case 0 :
Alert.show("DB오류입니다.");
break;
case 1 :
Alert.show("가입에 성공했습니다.");
idtext.text = "";
pwtext.text = "";
nametext.text = "";
agetext.text = "";
sextext.text = "";
teltext.text = "";
visible = false;
break;
case 2 :
Alert.show("ID가 이미있습니다.");
break;
}
}
private function faultHandler(event:FaultEvent):void {
Alert.show("실패 메세지: " + event.fault.message);
}
]]>
</mx:Script>
<mx:TitleWindow id="joinwindow" width="300" height="300"
layout="absolute" title="회원가입하기">
<mx:Label x="72.5" y="35" text="ID "/>
<mx:Label x="72.5" y="61" text="PW"/>
<mx:Label x="70.5" y="87" text="이름"/>
<mx:Label x="70.5" y="113" text="나이"/>
<mx:Label x="70.5" y="139" text="성별"/>
<mx:Label x="70.5" y="167" text="전화"/>
<mx:TextInput id="idtext" x="103.5" y="33" width="112"/>
<mx:TextInput id="pwtext" x="103.5" y="59" width="112"
displayAsPassword="true"/>
<mx:TextInput id="nametext" x="103.5" y="85" width="112"/>
<mx:TextInput id="agetext" x="103.5" y="111" width="112" restrict="0-9"/>
<mx:TextInput id="sextext" x="103.5" y="137" width="112"/>
<mx:TextInput id="teltext" x="103.5" y="165" width="112"/>
<mx:Button x="79.5" y="193" label="가입신청" click="RequestJoin();"/>
<mx:Button x="157.5" y="193" label="취소" click="visible=false"/>
</mx:TitleWindow>
</mx:Canvas>
[/code]
가입신청버튼을 클릭하면 RequestJoin()을 호출합니다. 이것은 RemoteObject를 통해 Join메소드를 호출합니다. 그리고 리턴값에 따라 1이면 성공, 2이면 이미 id가 있다고 알려줍니다. 텍스트박스를 다 초기화하고 visible을 false로 바꿔 창을 다시 로그인창으로 바꿉니다.
아 그리고 agetext를 보면 restrict="0-9"라고 써 놓으면 저 필드에는 숫자밖에 입력이 안됩니다. 좋은 정보입니다 핫핫-_-;
http://mudchobo.tomeii.com/tt/108