자바로 PC방 프로그램만들기

2초식. 네트워크장 로그인초식

로그인 만들기를 통해서 자바에서 SQL을 통한 DB접속을 배움.

예.. 회원가입보다 일단은 더 쉬운게 로그인 만들기 입니다.

오늘 만들 로그인은 단순히 애플리케이션뿐만 아니라, 웹에서도 그대로 쓸 수 있을 정도로 그 활용도가 높다고 보여지며

모든 네트워크 DB처리의 기본이라 할 수 있습니다.

(단 보안설정에 따라 더 복잡해질 수 있습니다.)

 

일단 오늘은 로그인초식을 배우기앞서 준비지식이 세가지 있습니다.

1. 자바에서 mysql 에 접근하기위한 jdbc설정(라이브러리 추가)

2. 이 프로그램에서는 특별히 접속커넥션관리를 위한 외부라이브러리를 씁니다. dbconnectionMGR 을 씁니다.

3. 자바 데이터베이스 접속개념을 잠시 살펴보고 

로그인 실습으로 가보겠습니다. 

동영상

파워포인트자료

1. 준비물들

다운로드 주소 http://adunhansa.tistory.com/156

1. jdbc API 추가하기

프로젝트 -  properties – java build path -> libraries -> add jars

검색어 - mysql connector

 

2. 코넥션관리 라이브러리 - DBConnectionMgr

을 열어서 db접속 주소, 아이디, 비밀번호 설정

검색어 

3. 자바 네트워크 접속 방법

connection -> preparedStatement -> (셀렉트문의 경우) ResultSet을 받아옴 -> 코넥션닫기

자세한 것은 실제 영상을 보면서 작업합니다.

 

소스

package test;

import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;

import assets.DBConnectionMgr;

public class LoginTest {
    public static void main(String[] args) {
		
		boolean test = loginTest("test", "1234");
		
		System.out.println("로그인 결과 :"+test);
	}

	public static boolean loginTest(String id, String password) {
		boolean flag = false;

		DBConnectionMgr pool = DBConnectionMgr.getInstance();

		Connection con = null;
		PreparedStatement pstmt = null;
		ResultSet rs = null;
		String sql = null;
		String getPass = null;

		try {
			con = pool.getConnection();

			// 문장생성
			sql = "select password from member_test where id=?";

			// 문장연결, 열차준비
			pstmt = con.prepareStatement(sql);

			// 빈칸채워주기
			pstmt.setString(1, id);

			// 실행, 열차출바알~!
			rs = pstmt.executeQuery();

			if (rs.next()) {
				// 패스워드를 읽어온다.
				getPass = rs.getString("password");

				// 데이터베이스에서 읽어온 문자열과 사용자가 입력한 비밀번호가 같을 경우에는
				// 참을 반환을 하겠죠?
				if (getPass.equals(password)) {
					System.out.println("받아온 비밀번호 : " + getPass);
					flag = true;
				}
			}

		} catch (Exception e) {
			//원래 예외처리는 크게 잡으면 안되고, 따로 처리가 되어야 합니다.
			e.printStackTrace();

		} finally {

			// 자원반납
			pool.freeConnection(con, pstmt, rs);
		}

		// 결과값 반납
		return flag;
	}
}

 

 

 

테스트를 위해서 소스가 허점이 좀 있습니다. 예외처리나 로그인의 보안처리등등
지금은 로그인의 흐름만 알기 위한 것이므로, 개선의 여지가 있다는 것만 알아둡시다.

 

댓글

댓글 본문
작성자
비밀번호
  1. java.sql.SQLException: Communications link failure

    The last packet sent successfully to the server was 0 milliseconds ago. The driver has not received any packets from the server.로그인 결과 :false

    at assets.DBConnectionMgr.createConnection(DBConnectionMgr.java:268)
    at assets.DBConnectionMgr.getConnection(DBConnectionMgr.java:157)
    at test.LoginTest.loginTest(LoginTest.java:29)
    at test.LoginTest.main(LoginTest.java:12)

    콘솔에 이렇게 뜨는데 어떻게 해야하는지 자세히좀 알려주세요 부탁드립니다.
  2. 김레걸
    감사합니다 잘봣어요 ㅎㅎ
  3. 이건 그냥 간단한 소스네요

    실제로 저렇게 썼다가는 sql인젝터 그냥 맞아버리겟쬬?
  4. ljy644
    mysql-connector-java-5.1.21-bin.jar다운로듯한것이 파일평태로되어 libaries에 넣지 못하고잇는데 어떻게 해결해야하나요?
  5. 대장너구리
    친구에게 배우는 기분이 듭니다.
    재밌어요!
버전 관리
아라한사
현재 버전
선택 버전
graphittie 자세히 보기