{Java}

21.06.24{코딩일기} 동빈나 유튜버 JSP게시판 만들기 코드 중간리뷰 노트 | 전자정부프레임워크 eclipse 게시판 만들기{day6}

Davey 2021. 6. 24. 14:33
728x90

게시판 코드작성완료 후기 생생하게 공유드립니다. 많이 놀러와주세여:)

https://www.youtube.com/watch?v=P5s5JwvZjBA&t=27s&pp=sAQA 

j2se8.7z.001
9.00MB

# 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; //데이터베이스 오류
	}

 


https://docs.microsoft.com/ko-kr/sql/connect/jdbc/reference/getstring-method-int-sqlserverresultset?view=sql-server-ver15 

 

getString 메서드(int)(SQLServerResultSet) - JDBC Driver for SQL Server

getString 메서드(int)(SQLServerResultSet)

docs.microsoft.com


index넘버 대신 column name을 사용해 열이름값을 호출하면 더욱 직관적인 코드가 가능하다.
column name을 공식적으론 column label이라고 부른다.

https://docs.microsoft.com/ko-kr/sql/connect/jdbc/reference/getstring-method-java-lang-string-sqlserverresultset?view=sql-server-ver15 

 

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

 

java doc chm파일 실행화면 예시

Copyright ⓒ 2021 by bluevulpe All Contents cannot be copied without permission.

728x90