Java 100

JDBC 성능 최적화

PreparedStatement 사용의 장점PreparedStatement는 SQL 쿼리를 미리 컴파일하고, 동일한 쿼리를 반복해서 실행할 때 효율적으로 사용할 수 있는 인터페이스입니다. 이는 성능과 보안 측면에서 많은 장점을 제공합니다.성능 향상:쿼리 컴파일: SQL 쿼리를 미리 컴파일하여, 쿼리를 여러 번 실행할 때 컴파일 시간을 절약할 수 있습니다.쿼리 계획 재사용: 동일한 쿼리를 반복적으로 실행할 때, 쿼리 계획을 재사용하여 실행 시간을 단축할 수 있습니다.보안 향상:SQL 인젝션 방지: 쿼리와 데이터가 분리되어 있어 SQL 인젝션 공격을 방지할 수 있습니다. 예시 코드String sql = "INSERT INTO users (name, email) VALUES (?, ?)";try (Connec..

Java/Java 2024.06.27

JDBC를 활용한 CRUD 와 SOLID 원칙

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

Java/Java 2024.06.14

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

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

Java/Java 2024.06.12

래퍼 클래스

프로그래밍을 하다 보면 기본 타입의 데이터를 객체로 표현해야 하는 경우가 종종 있습니다.이럴 때에 기본 자료타입(primitive type)을 객체로 다루기 위해서 사용하는 클래스들을 래퍼 클래스(wrapper class)라고 합니다.  package ch01;public class MainTest1 { public static void main(String[] args) { // 박싱, 언박싱 이라는 용어를 이해하자 int num1 = 3; // --> wrapper클래스는 Integer Integer num2 = new Integer(3); // 박싱 int num3 = num2.intValue(); // 언박싱 System.out.println(num2); System.out.printl..

Java/Java 2024.06.12

JDBC 기본 사용법

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";String ..

Java/Java 2024.06.11