Archive

2021-01-09 TIL

|

2021-01-09 TIL


  • 오늘 한 것

    1. 개인 프로젝트 로그인 기능 구현 - 예외처리하느라 힘들었다. 뭐가 되면 뭐가 안되고.. 무한반복하다가 끝내 DB와 연동에 성공했다. java에서 Connection 클래스라던지 Statement와 preparedStatement와의 차이 등등 모르는 개념이 많이 나오고 궁금한것도 많이 생겼다. 이 내용좀 파봐야겠다.

    2. 개인 프로젝트 DB 설계 - 사실상 오늘 가장 많은 시간을 할애한 부분인듯하다. 설계 모델링을 했다고는 해도 완전 처녀작에 DB공부 깔짝하고 만든거라 맞는지도 잘 모르겠다. 우선 만든대로 가고 나중에 필요할때마다 수정하는 방향으로 해야겠다.

    3. 생활코딩 MySQL 강의 수강 - 아직 join부분은 안봤다. 생활코딩 강의를 듣고 물론 도움은 많이 되었지만 인터넷 구글링해서 문서로 공부하는편이 더 빠를듯하다.

    4. JavaFX JDBC MySQL Tutorial - 오늘의 메인, 로그인기능 구현에 아주 도움이 되었다. 튜토리얼을 다 한건 아니지만 필요한 기능의 소스코드 부분부분만 참고하는식으로 봤다.

    5. 블로그 포스팅(Database)



  • 내일 할 것
    1. 개인 프로젝트 화면전환 구현
    2. 자바 데이터베이스 활용 공부
    3. 결혼식장 참석 후 가족모임



  • 끝으로

요즘은 공부가 무작정 하는것이 아니라 필요에 의해서 하는것임을 절실히 느낀다. 책을 A to Z 그냥 독파하는것이 아니라 이런 기능을 만들고싶은데 지금 나에게 필요한 부분이 뭘까 찾아보고 그쪽을 집중공략하는편이 더 몰입도 잘되고 기억에 잘 남는것 같다.

오늘의 한 줄 총평 : 필요에 의한 공부


MySQL JDBC 연동

|

MySQL JDBC 연동


MySQL과 Java 연동하기


지난번 MySQL 설치에 이어 이번엔 JDBC와 연동을 하겠다.

그럼 그 전에 JDBC란 무엇일까?


JDBC (Java Database Connectivity)는 데이터베이스 연결, 쿼리 및 명령 실행, 데이터베이스에서 얻은 결과를 집합 처리하고 관리하는 Java의 API이다. 쉽게 Java에서 Database에 접속하게 하는것이다.

우선 JDBC와 연동을 하려면 MySQL의 Connector/J를 다운받아야한다.

https://dev.mysql.com/downloads/connector/j/?os=26

여기서 Operating System을 Platform Independent에 맞춰놓고 window니까 zip 파일을 다운.

설치


압축 파일을 열어 jar파일만 쏙쏙 뽑아서 적당한 곳에 옮겨놓는다. 그리고 이클립스를 실행하자.

진행중인 프로젝트의 [properties] - [Java Build Path] 에서 Add External JARS를 클릭하여 다운받은 jar 파일을 넣어준다.

주의할점은 DBMS가 돌아가고 있어야한다는것

테스트할 DB는 사전에 만들어 놓는다.

이제 코드를 작성하여 테스트를 해보자.

import java.sql.*;

public class Test {
    // JDBC 드라이버
	private final String JDBC_DRIVER = "com.mysql.jdbc.Driver";
	// DB 사용자명
	private final String USER_NAME = "사용자ID";
	// DB 사용자 비밀번호
	private final String PASSWORD = "비밀번호";
	// 접속할 DB의 주소 MySQL 8.0이상은 serverTimezone=UTC 설정해야함
	private final String DB_URL = "jdbc:mysql://localhost:3306/pos_db?characterEncoding=UTF-8&serverTimezone=UTC&useSSL=false";
    
    public test() {
        
        Connection conn = null;
		
		try {
			Class.forName(JDBC_DRIVER);
            // 사용자 연결정보를 conn에 저장
			conn = DriverManager.getConnection(DB_URL,USER_NAME,PASSWORD);
            // 연결에 성공시 연결정보를 문자로 출력
			System.out.println(conn.toString());
		} catch(ClassNotFoundException e) {
			System.out.println("드라이버 로딩 실패");
		} catch(SQLException e) {
			System.out.println("SQLException : "+e.getMessage());
			System.out.println("SQLState : "+e.getSQLState());
			System.out.println("VendorError : "+e.getErrorCode());
		} finally {
			try {
				conn.close();
			} catch(SQLException e) {
				e.printStackTrace();
			}
		}
    }
}// Main 생략, 연결 성공시 com.mysql.cj.jdbc.ConnectionImpl@어쩌구가 나오면 성공

끄읏



참고 자료


What is JDBC? - InfoWorld

관계형 DB 1:1, 1:N, N:M

|

관계형 DB 1:1, 1:N, N:M



관계형 데이터베이스에서 객체끼리 서로 연관이 있을때, 관계를 맺을 수 있다.

  • 1:1 일대일(one-to-one relationship) : 테이블의 한 레코드는 다른 테이블의 한 레코드에만 연결된다.

    일대일

    자료 출처 : https://fmhelp.filemaker.com/

  • 1:N 일대다(one-to-many relationship) : 테이블의 한 레코드는 다른 테이블의 하나 이상의 레코드와 연관 될 수 있다. 한 쪽에서만 1:N이 성립하는 경우, 예를 들어 한 아이는 한 명의 아빠만 가지지만 아빠는 여러 아이를 가질 수 있다.

    일대다

    자료 출처 : https://fmhelp.filemaker.com/

  • N:M 다대다(many-to-many relationship) : 테이블의 여러 레코드가 다른 테이블의 여러 레코드와 연관 될 수 있다. 양쪽 모두 1:N이 성립하는 경우, 예를 들어 한 학생은 여러 클래스에 등록 할 수 있고 하나의 클래스는 여러 학생들에 의해 등록되어질 수 있다.



참고 자료


Three Types of Relationships in an ERD Diagram

About Relationships - FileMaker

2021-01-08 TIL

|

2021-01-08 TIL


  • 오늘 한 것

    1. 개인 프로젝트 로그인 화면 구현 - 어제 기획한 의도대로 로그인 화면을 구현했다. JavaFX scene builder가 툭하면 꺼지는 바람에 몇 번을 다시 한 것인지…중간저장 꼭 잊지말아야지. 컬러 파레트는 짜여졌으니 나머지 화면도 구현자체는 어렵지 않을듯하다.

    2. 학원 비대면 수업(15:30~22:00) Swing - swing GUI 구현

    3. MySQL 개발환경 구축 - MySQL 설치와 JDBC와의 연동으로 개발환경 구축을 완료했다.

    4. 생활코딩 MySQL 강의 수강 - 이렇게 다시 이고잉님의 수업을 듣게 되었다.

    5. 블로그 포스팅(Database MySQL) - MySQL 공부내용도 나중에 다시 꺼내볼수 있도록 블로그 포스팅을 열심히 해야겠다. 개발일지 작성과 내가 다시 보면서 기억을 상기시키는 블로그의 순기능을 최대한 활용하기 위해서.



  • 내일 할 것
    1. 개인 프로젝트 로그인 기능 구현, DB설계
    2. 생활코딩 Database2 - MySQL 강의 수강
    3. JavaFX JDBC MySQL Tutorial



  • 끝으로

초조해하지말고 하나씩 하나씩 구현해나가자.

오늘의 한 줄 총평 : 우보천리(牛步千里)


MySQL 설치

|

MySQL 설치


  • MySQL과 Java 연동하기


개인 프로젝트 준비를 위해 DB공부를 해볼까한다.

학원 커리큘럼엔 Oracle이 아주 살짝 나오지만 나는 MySQL로 가기로 했다.

우선 MySQL을 설치하자.

MySQL Download <—- 운영체제에 맞는 installer를 다운받자

설치

Developer Default 개발자용으로 설치를 진행한다.


설치2

Config Type은 Development Machine을 선택하고 Port Number도 기본 3306으로 진행한다.


설치3

관리자 계정인 root 사용자의 비밀번호를 설정한다.

쭉 사용할 것이므로 잊어버리지 않도록 한다.

도대체 어느정도로 해야 Strong이 나오는걸까?


설치4

서비스 이름은 기본으로 사용해도 되고 바꿔도 좋다.

쭉쭉 진행하자.


설치5

방금 설정한 비밀번호 입력하고 테스트에 성공하였다면 다음으로 넘어가자.


workbench

Workbench에서 정상 작동을 확인했다.


command

Command Line Client에서도 정상 작동을 확인했다.


이제 명령프롬포트로도 실행이 가능하도록 환경변수를 설정하자.

우선 MySQL server\bin의 경로를 복사하자.

(C:\Program Files\MySQL\MySQL Server 8.0\bin)

[제어판] - [시스템 및 보안] - [시스템] - [고급 시스템 설정] - [고급] - [환경변수]

밑의 시스템 변수의 Path를 편집하자. 새로만들기로 방금 복사한 경로를 넣어주자.

환경변수


cmd

cmd 창에서 명령어가 잘 먹힌다면 성.공.적.


이제 좀 가지고 놀아보자.

다시 cmd 창에서 root 사용자로 로그인을 해보자.

mysql -u root -p

비밀번호가 있는 사용자일경우 -p를 붙인다.

-u root는 root 사용자로 접근하겠다는것.

로그인에 성공하였다면 Welcome~ 어쩌구가 뜰 것이다.

우선 설치는 여기까지 끄읏.



참고 자료