Java 124

Swing - 5 (이벤트 리스너)

package ch05;import java.awt.Color;import java.awt.FlowLayout;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import javax.swing.JButton;import javax.swing.JFrame;// 이벤트 리스너를 사용하는 방법// 1. implements ActionListener 사용 하는 방법 // ActionListener --> 운영 체제가 제어하는 이벤트를 등록할 수 있다. public class ColorChangeFrame extends JFrame implements ActionListener { // 이벤트 리스너에 대한 개념을 이해하자. priv..

Java/Java Swing 2024.07.03

Swing - 4 (이미지 겹치는 방법)

package ch04;import javax.swing.Icon;import javax.swing.ImageIcon;import javax.swing.JFrame;import javax.swing.JLabel;/** * JLable 이용해서 이미지를 다룰 수 있다. * Jlable.add(); 메서드를 통해서 이지를 겹칠 수 있다 * 좌표 기준으로 이미지를 셋팅을 할려면 * 배치관리자를 null 값으로 셋팅 해야 한다. */public class MyFrame extends JFrame { private JLabel backgroundMap; private JLabel player; public MyFrame() { initData(); setInitLayot(); } private v..

Java/Java Swing 2024.07.03

JDBC 실습 예제 - 10

💡 학습 목표JDBC를 사용하여 학생 관리 시스템을 구축해 보자.학생의 정보를 데이터베이스에 저장하고 관리하는 간단한 시스템을 구축합니다.학생 정보를 추가, 조회, 수정, 삭제할 수 있는 기능을 구현합니다.  기능 요구사항학생 정보 추가학생 정보 조회학생 정보 수정학생 정보 삭제비기능 요구사항사용자 친화적인 콘솔 인터페이스 제공적절한 예외 처리 및 로그 기록데이터베이스 연결 풀 사용(HikariCP)>> 프로젝트 설계 데이터베이스 설계 및 테이블 생성테이블 - tbstudent 컬럼 - id, name, age, email create database studentdb;CREATE TABLE students ( id INT AUTO_INCREMENT PRIMARY KEY, name VARCH..

JDBC에서의 예외 처리 - 9

💡 학습 목표JDBC에서 발생할 수 있는 예외를 이해하고 효과적으로 처리하는 방법을 배웁니다.예외 발생 시 로그를 기록하고, 사용자에게 유용한 피드백을 제공하는 방법을 알아 보자.  SQLException 다루기SQLException은 JDBC에서 발생할 수 있는 일반적인 예외입니다. 이 예외는 데이터베이스와의 통신 중에 발생하는 오류를 나타냅니다. SQLException은 다양한 속성과 메서드를 제공하여 예외에 대한 상세한 정보를 제공합니다.주요 속성 및 메서드:getErrorCode(): 데이터베이스 벤더가 제공하는 특정 오류 코드를 반환합니다.getSQLState(): SQLState 코드를 반환합니다. 이 코드는 표준 SQL 상태 코드를 나타냅니다.getMessage(): 예외 메시지를 반환합니..

JDBC 성능 최적화 - 8

💡 성능 향상 기법PreparedStatement 사용의 장점연결 풀 (Connection Pool) 사용데이터 소스 (Data Source)의 개념연결 풀의 장점(Connection Pool)캐싱 전략 1. PreparedStatement 사용의 장점PreparedStatement는 SQL 쿼리를 미리 컴파일하고, 동일한 쿼리를 반복해서 실행할 때 효율적으로 사용할 수 있는 인터페이스입니다. 이는 성능과 보안 측면에서 많은 장점을 제공합니다.성능 향상:쿼리 컴파일: SQL 쿼리를 미리 컴파일하여, 쿼리를 여러 번 실행할 때 컴파일 시간을 절약할 수 있습니다.쿼리 계획 재사용: 동일한 쿼리를 반복적으로 실행할 때, 쿼리 계획을 재사용하여 실행 시간을 단축할 수 있습니다.보안 향상:SQL 인젝션 방지: ..

JDBC를 활용한 CRUD 와 SOLID 원칙 - 7

콘솔을 활용한 간단한 퀴즈 게임 만들어 보기 1. DB , 테이블 설계 2. 기본 데이터 입력(정규화) 3. 자바측 라이브러리 설정 4. 자바측 기능 구현 및 테스트 5. 리팩토링 -- 데이터베이스 생성 create database quizdb; use quizdb;drop table quiz;create table quiz( id int auto_increment primary key, question varchar(500) not null, answer varchar(500) not null);desc quiz;-- 기본 샘플 데이터 입력 insert into quiz(question, answer ) values ('대한민국의 수도는?', '서울'), ('한반도의 남쪽에 ..

JDBC 트랜잭션 관리와 배치 처리 - 6

1. 트랜잭션 관리(commit, rollback)트랜잭션은 여러 SQL 문을 하나의 작업 단위로 묶어주는 것을 의미합니다. commit은 트랜잭션을 완료하여 변경사항을 저장하고, rollback은 트랜잭션을 취소하여 변경사항을 되돌립니다.트랜잭션의 개념과 중요성트랜잭션의 개념:트랜잭션(Transaction)은 데이터베이스에서 하나의 논리적인 작업 단위를 의미합니다. 여러 SQL 문이 하나의 작업으로 묶여서 실행됩니다.트랜잭션은 원자성(Atomicity), 일관성(Consistency), 고립성(Isolation), 지속성(Durability)의 특성을 갖습니다. 이를 ACID 특성이라고 합니다.💡 원자성 (Atomicity) 원자성은 트랜잭션의 모든 작업이 성공적으로 완료되거나, 전혀 실행되지 않은 ..