21.06.24{코딩일기} 동빈나 유튜버 JSP게시판 만들기 코드 중간리뷰 노트 | 전자정부프레임워크 eclipse 게시판 만들기{day6}
게시판 코드작성완료 후기 생생하게 공유드립니다. 많이 놀러와주세여:)
https://www.youtube.com/watch?v=P5s5JwvZjBA&t=27s&pp=sAQA
# DB클래스 및 속성(Column label) 표기법
database는 대소문자를 구분하지 않는다.
List라는 테이블을 만들었는데 해당 속성값(Column)들 이름을 지어줄때
Bad Syntax ex : listID(x)
Syntax ex : 테이블명_id, 테이블명_email 식으로 언더바로 구분 작성 해주는게 좋다.
아래 코드표기방법 참조하자.
https://lcw126.tistory.com/260
코드 작성 시 다양한 표기 방법 (카멜, 파스칼, 헝가리안, 스네이크)
코드 작성 시 자신만의 방법으로 표기를 한다. 예) 클래스는 첫 문자를 대문자, 변수명은 알아 볼 수 있게... 하지만 같이 일을 하는 입장에선 서로 법칙을 정하여 프로젝트를 수행하면 훨씬 일의
lcw126.tistory.com
# getString 메서드 int 보다 columnname 사용
SQL서버로 요청을 보낼때 현재행에서 지정된 열 인덱스의 값을 가져오는 방법도 좋지만
직관적이지 않아 다른 사람이 코드를 볼땐 무슨 값을 가져오는지 바로 파악하기가 쉽지 않다.
public int login(String userID, String userPassword) {
final String SQL = "SELECT userPassword FROM USER WHERE userID = ?";
try {
pstmt = conn.prepareStatement(SQL);
pstmt.setString(1, userID);
rs = pstmt.executeQuery();
if (rs.next()) {
if(rs.getString("userPassword").equals(userPassword)) {
return 1; //로그인 성공
}
else {
return 0; //비밀번호 불일치
}
}
return -1; //아이디가 없음
} catch (Exception e) {
e.printStackTrace();
}
return -2; //데이터베이스 오류
}
public int join(User user) {
String SQL = "INSERT INTO USER VALUES (?, ?, ?, ?, ?)";
try {
pstmt = conn.prepareStatement(SQL);
pstmt.setString(1, user.getUserID());
pstmt.setString(2, user.getUserPassword());
pstmt.setString(3, user.getUserName());
pstmt.setString(4, user.getUserGender());
pstmt.setString(5, user.getUserEmail());
return pstmt.executeUpdate();
} catch(Exception e) {
e.printStackTrace();
}
return -1; //데이터베이스 오류
}
getString 메서드(int)(SQLServerResultSet) - JDBC Driver for SQL Server
getString 메서드(int)(SQLServerResultSet)
docs.microsoft.com
index넘버 대신 column name을 사용해 열이름값을 호출하면 더욱 직관적인 코드가 가능하다.
column name을 공식적으론 column label이라고 부른다.
getString 메서드(java.lang.String)(SQLServerResultSet) - JDBC Driver for SQL Server
getString 메서드(java.lang.String)(SQLServerResultSet)
docs.microsoft.com
# 좀 더 직관적인 SQL쿼리 짜기
아래와 같이 sql쿼리를 넣을땐, 속성값들을 '?'물음표로 적으면
무슨 데이터를 요청하는 쿼리인지 db를 보지 않으면 알수가 없다.
미리 userID, userGender등등 다 적어주는게 좋다.
public int join(User user) {
String SQL = "INSERT INTO USER VALUES (?, ?, ?, ?, ?)";
# javadoc chm
위 메서드와 객체와 관련하여 javadoc을 살펴보면 이해가 더 좋다.
용량이 몹시 상당한 파일이라 링크만 걸어 공유한다.
https://j2doll.tistory.com/549
J2SE 8 documentation CHM Html Help file
* 자료 출처: https://javadoc.allimant.org/ [Java Docs] Oracle에서 제공해주는 html 형식의 java docs 파일이 아닌 chm 으로 된 파일 입니다. 문서는 14년 버전입니다. 좀 오래 된거죠.
j2doll.tistory.com
위 링크를 통해 chm파일을 다운받고, 압축해제한후 chm파일을 실행시키면
아래와 같이 화면이 보이는데 Java jdbc를 이해하는데 도움이된다.
예를들면, 이클립스에 getString 단어를 클릭하고 마우스커서를 그대로 올려놓으면
팝업처럼 작은설명창이 볼수 있다. 그 창 맨 첫번째 줄은 아래와 같다.
String Java.sql.Result.Set.getString.(String columnLabel) throw SQLException
이게 뭐냐 싶을 수 있다. 내용은 아래와 같다
String : java의 class중하나로 string데이터를 만들어준다.
Java.sql : java의 api패키지중 하나. DB데이터를 다룰때 사용되는 패키지다. 애가 왜 먼저오냐? 라고 묻는다면? 우리가 class를 생성하기전에 이클립스로 src폴더아래 패키지 만들어주는거랑 똑같다고 보면된다.
패키지 다음이 뭐냐? 클래스이므로
Result.Set : 이것은 sql패키지 안에 들어있는 클래스 중 하나이다. DB에 쿼리를 날릴때 이용하는 인터페이스이다.
클래스 안에는 여러가지 메소드가 들어있는데 Result.Set class안에 있는 메소드중 하나가 getString이고 중괄호()안에는 db에 있는 테이블의 어떤요소를 가져오길 원하는지 적어주면 된다. (String columnLabel)
Copyright ⓒ 2021 by bluevulpe All Contents cannot be copied without permission.