전체 글

노력하는 코딩 농부
💡 학습 목표JDBC를 사용하여 학생 관리 시스템을 구축해 보자.학생의 정보를 데이터베이스에 저장하고 관리하는 간단한 시스템을 구축합니다.학생 정보를 추가, 조회, 수정, 삭제할 수 있는 기능을 구현합니다.  기능 요구사항학생 정보 추가학생 정보 조회학생 정보 수정학생 정보 삭제비기능 요구사항사용자 친화적인 콘솔 인터페이스 제공적절한 예외 처리 및 로그 기록데이터베이스 연결 풀 사용(HikariCP) >> 프로젝트 설계 데이터베이스 설계 및 테이블 생성테이블 - tbstudent 컬럼 - id, name, age, emailcreate database studentdb;CREATE TABLE students ( id INT AUTO_INCREMENT PRIMARY KEY, name VARCH..
💡 학습 목표JDBC에서 발생할 수 있는 예외를 이해하고 효과적으로 처리하는 방법을 배웁니다.예외 발생 시 로그를 기록하고, 사용자에게 유용한 피드백을 제공하는 방법을 알아 보자.  SQLException 다루기SQLException은 JDBC에서 발생할 수 있는 일반적인 예외입니다. 이 예외는 데이터베이스와의 통신 중에 발생하는 오류를 나타냅니다. SQLException은 다양한 속성과 메서드를 제공하여 예외에 대한 상세한 정보를 제공합니다.주요 속성 및 메서드:getErrorCode(): 데이터베이스 벤더가 제공하는 특정 오류 코드를 반환합니다.getSQLState(): SQLState 코드를 반환합니다. 이 코드는 표준 SQL 상태 코드를 나타냅니다.getMessage(): 예외 메시지를 반환합니..
💡 성능 향상 기법PreparedStatement 사용의 장점연결 풀 (Connection Pool) 사용데이터 소스 (Data Source)의 개념연결 풀의 장점(Connection Pool)캐싱 전략  1. PreparedStatement 사용의 장점PreparedStatement는 SQL 쿼리를 미리 컴파일하고, 동일한 쿼리를 반복해서 실행할 때 효율적으로 사용할 수 있는 인터페이스입니다. 이는 성능과 보안 측면에서 많은 장점을 제공합니다.성능 향상:쿼리 컴파일: SQL 쿼리를 미리 컴파일하여, 쿼리를 여러 번 실행할 때 컴파일 시간을 절약할 수 있습니다.쿼리 계획 재사용: 동일한 쿼리를 반복적으로 실행할 때, 쿼리 계획을 재사용하여 실행 시간을 단축할 수 있습니다.보안 향상:SQL 인젝션 방지:..
콘솔을 활용한 간단한 퀴즈 게임 만들어 보기1. DB , 테이블 설계2. 기본 데이터 입력(정규화) 3. 자바측 라이브러리 설정 4. 자바측 기능 구현 및 테스트 5. 리팩토링 SQL DB -- 데이터베이스 생성 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 ('대한민국의 수도는?', '서울'), ('한반도의..
1. 트랜잭션 관리(commit, rollback)트랜잭션은 여러 SQL 문을 하나의 작업 단위로 묶어주는 것을 의미합니다. commit은 트랜잭션을 완료하여 변경사항을 저장하고, rollback은 트랜잭션을 취소하여 변경사항을 되돌립니다. 트랜잭션의 개념과 중요성트랜잭션의 개념:트랜잭션(Transaction)은 데이터베이스에서 하나의 논리적인 작업 단위를 의미합니다. 여러 SQL 문이 하나의 작업으로 묶여서 실행됩니다.트랜잭션은 원자성(Atomicity), 일관성(Consistency), 고립성(Isolation), 지속성(Durability)의 특성을 갖습니다. 이를 ACID 특성이라고 합니다.💡트랜잭션원자성 (Atomicity) 원자성은 트랜잭션의 모든 작업이 성공적으로 완료되거나, 전혀 실행되지..
Createpackage ch03;import java.sql.Connection;import java.sql.DriverManager;import java.sql.PreparedStatement;import java.sql.ResultSet;import java.sql.SQLException;import java.sql.Statement;public class InsertExample { public static void main(String[] args) { String url = "jdbc:mysql://localhost:3306/mydb2?serverTimezone=Asia/Seoul";; String user = "root"; String password = "asd123"; //..
DriverManager를 이용한 연결DriverManager 클래스는 JDBC 드라이버를 관리하고 데이터베이스와의 연결을 설정하는 데 사용됩니다.드라이버 로드:먼저 JDBC 드라이버를 메모리에 로드합니다.try { Class.forName("com.mysql.cj.jdbc.Driver"); // MySQL 드라이버 로드} catch (ClassNotFoundException e) { e.printStackTrace();} 데이터베이스 연결DriverManager.getConnection() 메소드를 사용하여 데이터베이스와의 연결을 설정합니다.예제 코드String url = "jdbc:mysql://localhost:3306/mydatabase?serverTimezone=Asia/Seoul";..
💡 JDBC 드라이버 설치 다양한 DBMS별 JDBC 드라이버 설치 방법이 존재 합니다.JDBC 드라이버 설치1. MySQL드라이버 다운로드:MySQL의 공식 웹사이트에서 MySQL Connector/J를 다운로드합니다.MySQL Connector/J 다운로드드라이버 설정:다운로드한 ZIP 파일을 압축 해제합니다.mysql-connector-java-.jar 파일을 Java 프로젝트의 클래스패스에 추가합니다.IDE (예: IntelliJ, Eclipse)를 사용하는 경우, 프로젝트 설정에서 라이브러리를 추가하여 JAR 파일을 클래스패스에 포함시킬 수 있습니다. 2. Oracle드라이버 다운로드:Oracle의 공식 웹사이트에서 JDBC 드라이버를 다운로드합니다.Oracle JDBC 드라이버 다운로드드라이..
tb_categories 테이블Field NameData TypeescriptionConstraintsExample Valuescategory_idINT카테고리의 고유 IDPRIMARY KEY, AUTO_INCREMENT1, 2, 3parent_idINT상위 카테고리의 IDFOREIGN KEY, NULL 가능NULL, 1category_nameVARCHAR(100)카테고리 이름NOT NULL"남성복", "팬츠", "셔츠" category_idparent_idcategory_name1NULL남성복2NULL여성복31팬츠42팬츠51셔츠62셔츠73면바지 (남성복 →팬츠 → 면바지)84면바지 (여성복 → 팬츠 → 면바지)93슬랙스 (남성복 →팬츠 → 슬랙스 )104슬랙스(여성복→팬츠 → 슬랙스 ) create d..
tb_categoriesField NameData Type Descriptionvaluecategory_idint카테고리 고유 ID1, 2, 3, 4,category_namevarchar(100)카테고리 이름“상의”, “하의”, “외투” create table tb_categories( category_id int auto_increment primary key, category_name varchar(100) not null);insert into tb_categories(category_name) values('상의');insert into tb_categories(category_name) values('하의');insert into tb_categories(category_name) values..
CNOW
코린이의 전원일기