개발 Q&A

제목 이제 막시작한 초보입니다 ㅠㅠ MSSQL로 작성된 소스를 MYSQL로 변환해서 코딩을 계속 하고 싶은데요 ㅠㅠ
글쓴이 LASTWING 작성시각 2014/11/17 20:38:49
댓글 : 3 추천 : 0 스크랩 : 0 조회수 : 15980   RSS
지금 제가 공부하고있는 회원가입 부분입니다. JQUERY모바일 및jsp 공부하면서 책 예제를 보면서 공부를 하고 있는데 mssql로 작성된 소스인데 mssql 보다 mysql로 맞게 변활을 하고싶어서 찾아보고있는데 많이 어렵네요 전체적인 소스인데 어디부분을 바꿔줘야 하는지 인터넷보고 따라는 해봤는데 계속오류만 나고 해결이 안되네요 ㅠㅠ 

전체적인 소스입니다. db접속부분과sql부분을 고쳐봐도 계속 오류만 나서 고민입니다. ㅠㅠ 

mssql로 작성된 코딩을 mysql로 변경하는법이 나와있는 자료는 없나요??


<%@ page contentType="text/html;charset=euc-kr"%> 
<%@ page import="java.sql.*" %> 


<meta charset="utf-8"> 
<meta name="viewport" content="width=device-width, initial-scale=1"> 
<title>JSP World</title> 
<%@ include file="../include/jQueryMobile.inc" %> 



<section data-role="page" id="page1"> 
<!-- 1. 헤더 --> 
<header data-role="header" data-theme="a"> 
<%@ include file="../include/header.inc" %> 
<%@ include file="../include/menu.inc" %> 
</header> 
<!-- 2. 본문 --> 
<section data-role="content"> 
<form method="post" action="join.jsp" data-ajax="false"> 

<fieldset data-role="fieldcontain"> 

<!-- 고객ID --> 
<label for="ID">회원ID:</label> 
<input type="text" id="ID" name="ID" size="10" maxlength="10" required="required"> 

<!-- 성명 --> 
<label for="name">성명:</label> 
<input type="text" id="name" name="name" size="10" maxlength="10" required="required"> 

<!-- 비밀번호 --> 
<label for="pswd">비밀번호:</label> 
<input type="password" id="pswd" name="pswd" size="10" maxlength="10" required="required"> 

<!-- 성별 --> 
<fieldset data-role="controlgroup" data-type="horizontal"> 
<legend>성별:</legend> 
<input type="radio" name="gender" id="gender-1" value="남"> 
<label for="gender-1">남</label> 
<input type="radio" name="gender" id="gender-2" value="여"> 
<label for="gender-2">여</label> 
</fieldset> 

<!-- 생일 --> 
<label for="birthday2">생일:</label> 
<input type="date" id="birthday2" name="birthday" required="required"> 
<!-- 관심분야 --> 


<fieldset data-role="controlgroup"> 
<legend>관심분야:</legend> 

<% 
String interest = ""; 
// DB 관련 객체 
Connection conn = null; 
PreparedStatement pstmt = null; 
ResultSet rs = null; 
ResultSet rs2 = null; 
String sql = ""; 
String rst = "success"; 
String msg = ""; 
%> 
<% 
try { 
%> 
<!-- DB Open --> 
<%@ include file="../include/dbOpen.inc" %> 

<% 
// 관심분야명 추출 
sql = "select 관심분야명 " + 
" from 관심분야 " + 
"order by 관심분야명 "; 
pstmt = conn.prepareStatement(sql); 
rs = pstmt.executeQuery(); 
int i=1; 
while(rs.next()) { 
interest = rs.getString("관심분야명"); 
%> 
<input type="checkbox" name="interest" id="checkbox-<%= i %>" value="<%= interest %>"> 
<label for="checkbox-<%= i %>"><%= interest %></label> 
<% 
i++; 

%> 

<% 
} catch(SQLException e) { 
rst = "시스템에러"; 
msg = e.getMessage(); 
} finally { 
if(rs != null) 
rs.close(); 
if(pstmt != null) 
pstmt.close(); 
if(conn != null) 
conn.close(); 

%> 

</fieldset> 

</fieldset> 

<p align="center"> 
<button type="submit" data-role="button" data-inline="true">등록</button> 
</p> 
</form> 

</section> 
<!-- 3. 푸터 --> 
<footer data-role="footer" data-theme="a" data-position="fixed"> 
<%@ include file="../include/businessInfo.inc" %> 
</footer> 
</section> 



---------------------------------------------------------------------------------------- 

join.jsp 
<%@ page contentType="text/html;charset=euc-kr"%> 
<%@ page import="java.sql.*" %> 
<!-- 전역변수 선언 및 입력 매개변수값 추출 --> 
<% 
// 입력정보 한글 처리 
request.setCharacterEncoding("euc-kr"); 
// 회원 관련 입력정보 추출 
String ID = request.getParameter("ID"); 
String name = request.getParameter("name"); 
String pswd = request.getParameter("pswd"); 
String gender = request.getParameter("gender"); 
String birthday = request.getParameter("birthday"); 
String[] interest = request.getParameterValues("interest"); 
%> 
<% 
// DB 관련 객체 
Connection conn = null; 
PreparedStatement pstmt = null; 
ResultSet rs = null; 
String sql = ""; 
String rst = "success"; 
String msg = ""; 
%> 
<% 
try { 
%> 
<!-- DB Open --> 
<%@ include file="../include/dbOpen.inc" %> 
<% 
// 이미 등록된 아이디가 있는지 검사 
sql = "select * " + 
" from 회원 " + 
"where 회원ID = ? "; 
pstmt = conn.prepareStatement(sql); 
pstmt.setString(1, ID); 
rs = pstmt.executeQuery(); 

// 등록된 아이디가 있는 경우 
if (rs.next()) { 

rst = "중복아이디"; 
msg = "이미 등록된 아이디입니다!"; 

// 등록된 아이디가 아닌 경우 
} else { 

// 트랜잭션 내의 여러 테이블 수정을 위해 AutoCommit을 중지 
conn.setAutoCommit(false); 

// 회원으로 등록 
sql = "insert into 회원(회원ID, 성명, 비밀번호, 성별, 생일, 등록일) " + 
" values (?, ?, ?, ?, ?, getdate())"; 
pstmt = conn.prepareStatement(sql); 
pstmt.setString(1, ID); 
pstmt.setString(2, name); 
pstmt.setString(3, pswd); 
pstmt.setString(4, gender); 
pstmt.setString(5, birthday); 
pstmt.executeUpdate(); 

for(int i=0; i<interest.length; i++)="" {="" %=""> 
<% 
// 회원의 관심분야 등록 
sql = "insert into 회원관심분야(회원ID, 관심분야명) " + 
" values (?, ?)"; 
pstmt = conn.prepareStatement(sql); 
pstmt.setString(1, ID); 
pstmt.setString(2, interest[i]); 
pstmt.executeUpdate(); 
%> 
<% 


// 여러 테이블 수정 시 에러가 없으면 commit 처리 
conn.commit(); 
%> 

<% 
// 세션 저장 
session.setAttribute("ID", ID); 
session.setAttribute("name", name); 
%> 

<% 

%> 
<% 
} catch(SQLException e) { 
// 여러 테이블 수정 시 에러가 있으면 rollback 처리 
conn.rollback(); 
rst = "시스템에러"; 
msg = e.getMessage(); 
} finally { 
if(pstmt != null) 
pstmt.close(); 
if(conn != null) 
conn.close(); 

%> 
<!-- 실행 후, 분기 --> 
<% 
// 수정 후, 조회화면으로 이동 
if(rst.equals("success")) 
response.sendRedirect("getMyInfo.jsp"); 
// DB 에러 시, 에러출력화면으로 이동 
else 
response.sendRedirect("../error/showError.jsp?rst=" + rst + "&msg=" + msg); 
%> 
-------------------------------------------------------------------------------- 
getmyinfo.jsp 

<%@ page contentType="text/html;charset=euc-kr"%> 
<%@ page import="java.sql.*" %> 


<meta charset="utf-8"> 
<meta name="viewport" content="width=device-width, initial-scale=1"> 
<title>JSP World</title> 
<%@ include file="../include/jQueryMobile.inc" %> 
<script type="text/javascript"> 
$(document).ready(function () { 
$("#btnUpdate").click(function (e) { 
location.href = "updateForm.jsp"; 
}); 
$("#btnImgUpdate").click(function (e) { 
location.href = "updateImageForm.jsp"; 
}); 
}); 
</script> 


<section data-role="page"> 
<!-- 1. 헤더 --> 
<header data-role="header" data-theme="a"> 
<%@ include file="../include/header.inc" %> 
<%@ include file="../include/menu.inc" %> 

</header> 
<!-- 2. 본문 --> 
<section data-role="content"> 

<!-- 전역변수 선언 및 입력 매개변수값 추출 --> 
<% 
// 회원 관련 객체 
String pswd = ""; 
String gender = ""; 
String birthday = ""; 
String image = ""; 
String interest = ""; 
String date_joined = ""; 
// DB 관련 객체 
Connection conn = null; 
PreparedStatement pstmt = null; 
ResultSet rs = null; 
ResultSet rs2 = null; 
String sql = ""; 
String rst = "success"; 
String msg = ""; 
%> 
<% 
try { 
%> 
<!-- DB Open --> 
<%@ include file="../include/dbOpen.inc" %> 

<% 
// 사용자 회원정보 추출 
sql = "select * " + 
" from 회원 " + 
"where 회원ID = ? "; 
pstmt = conn.prepareStatement(sql); 
pstmt.setString(1, ID); 
rs = pstmt.executeQuery(); 

// 등록된 회원인 경우 
if (rs.next()) { 
name = rs.getString("성명"); 
gender = rs.getString("성별"); 
birthday = rs.getString("생일"); 
image = rs.getString("회원사진명"); 
date_joined = rs.getString("등록일"); 

if (image == null || image.equals("")) 
image = "sample.png"; 
%> 
<br> 
<img width="50%" src="../contents/member_uploaded/<%= image %>"> 
<h1><%= name %>(<%= ID %>)</h1> 
<b>성별</b>: <%= gender %><br> 
<b>생일</b>: <%= birthday %><br> 
<b>관심 </b>: 
<% 
// 관심분야 추출 
sql = "select * " + 
" from 회원관심분야 " + 
"where 회원ID = ? "; 
pstmt = conn.prepareStatement(sql); 
pstmt.setString(1, ID); 
rs2 = pstmt.executeQuery(); 
while (rs2.next()) { 
interest = rs2.getString("관심분야명"); 
%> 
<%= interest %> 
<% 

%> 
<br> 

<b>등록 </b>: <%= date_joined %><br> 

<center> 
<button id="btnUpdate" data-role="button" data-inline="true">개인정보수정</button> 
<button id="btnImgUpdate" data-role="button" data-inline="true">사진수정</button> 
<a href="#page2" data-role="button" data-inline="true" data-rel="dialog" dta-transition="pop">회원탈퇴</a> </center> 

<% 
// 등록된 회원이 아닌 겨우 
} else { 
 다음글 JSON string 형식인 file을 불러올때 객체로... (4)
 이전글 다른분들은 이런 경우 어떻게 처리하시나요~? (URL ... (4)

댓글

한대승(불의회상) / 2014/11/17 20:44:43 / 추천 0
ㅎㅎ 참 난감하네요.
일단 .inc 로 끝나는 파일부터 시작하세요.
mssql과 mysql 차이점도 공부 하셔야 할 것 같구요.
mssql에서도 비추천인 한글 테이블명과 컬러명을 영문으로 치환해서 테이블 설계도 하셔야 할 것 같구요.

험난한 가시밭길이 눈에 보입니다.

화이팅!
kaido / 2014/11/17 20:56:11 / 추천 0
우와 카오스다 덜덜....

MSSQL 한글명 사용 된걸 MYSQL로 변환해야하고..

프로그램은 JSP로 되어있어...


일단 프로그램 쪽은 스톱!!!

DB 부터 전부 정리, 이전 끝내고 나서 들어가세요.

DB 스키마 정리도 안되었는데 시작 하면 나중에 손도 못댈 만큼 꼬입니다.


만일 저라면...

우선 MSSQL -> MYSQL로 변환 합니다.

한글 테이블명과 한글 필드명은 전부 영문으로 바꿉니다. [기록도 해놓으시면 좋습니다.]

소스가 정상이라는 가정하에...

한글 필드명을 영문으로 전부 변환하면 정상 작동 되어야 합니다.
LASTWING / 2014/11/17 22:06:53 / 추천 0

ㅠㅠ 그정도로 완전 기본 규칙아 않지켜진거군요 ㅠㅠ 답변  감사합니다 ㅠㅠ

일단 테이블명을 전부 영어로 바꿔 봐야겠어요 ㅠ