BackEnd/Java 60

[Java]equals, hashcode 차이

**equals와 hashCode는 Java의 Object 클래스에서 기본 제공되는 메서드로, 객체 비교 및 해시 기반 컬렉션(HashMap, HashSet 등)의 동작에 중요한 역할을 합니다. 1. equals 메서드 두 객체가 논리적으로 같은지를 비교하는 데 사용 public boolean equals(Object obj) { return (this == obj);}@Overridepublic boolean equals(Object obj) { if (this == obj) return true; if (obj == null || getClass() != obj.getClass()) return false; Person person = (Person) obj; return ..

BackEnd/Java 2024.11.28

Spring Boot 프로젝트에 DB 연결하기

HiKariCP(Hikari Connection Pool) 란? 빠르고, 간단하고 믿을 수 있는 HikariCP는 "오버헤드 제로(처리 시간을 극단적으로 줄이는 것을 목표)"의 프로덕션 지원 JDBC Connection Pool로 다른 Connection에 비해 매우 가벼움.  build.gradle → dependencies에 추가 (Spring Starter 생성 시 JDBC API 추가하면됨)// Spring Boot JDBC 관련 라이브러리 모음implementation 'org.springframework.boot:spring-boot-starter-jdbc'// 오라클 JDBC DriverruntimeOnly 'com.oracle.database.jdbc:ojdbc8'// @Configurat..

BackEnd/Java 2024.09.05

MyBatis 정의 및 세팅

MyBatis란? 데이터의 입력, 조회, 수정, 삭제(CRUD)를 보다 편하게 하기 위해 xml로 구조화한 Mapper 설정 파일을 통해서 JDBC를 구현한 영속성 프레임워크 기존에 JDBC를 통해 구현했던 상당 부분의 코드와 파라미터 설정 및 결과 매핑을 xml 설정을 통해 쉽게 구현할 수 있다. 🪄 Mybatis 동작 흐름기존에 JDBCTemplate을 통해 SQL을 실행하였다면 Mybatis는 해당 과정전용 라이브러리를 통해 대체하여동작한다고 생각하면 됨. 🪄  Mybatis 내부 동작 구조  🪄  mybatis 세팅

BackEnd/Java 2024.09.05

[JDBC]JDBC 기초 (PreparedStatement)

java.sql.PreparedStatement (준비된 Statement)  - SQL 중간에 ?(placeholder)를 작성하여 ? 자리에 java 값을 대입할 준비가 되어있는 Statement [장점]  장점 1 : SQL 작성이 간단해짐   장점 2 : ?에 값 대입 시 자료형에 맞는 형태의        리터럴 표기법으로 대입됨!       ex) String 대입 -> '값'  (자동으로 '' 추가)       ex) int 대입    ->  값    장점 3 : 성능, 속도에서 우위를 가지고 있음    ** PreparedStatement는 Statement의 자식 **    아이디, 비밀번호, 이름을 입력 받아 TB_USER 테이블에 삽입(INSERT)하기  1. JDBC 객체 참조 변수 ..

BackEnd/Java 2024.09.02

[JDBC] JDBC 기초 작성방법

JDBC(Java DataBase Connectivity) Java에서 DB에 연결(접근) 할 수 있게 해주는Java API (Java에서 제공하는 코드)   → java.sql 패키지에 존재함  [작성 방법] Java 코드를 이용해 EMPLOYEE 테이블에서 사번, 이름, 부서코드, 직급코드, 급여, 입사일 조회 1. JDBC 객체 참조용 변수 선언public class JDBCExample1 { public static void main(String[] args) { // java.sql.Connection // 특정 DBMS와 연결하기위한 정보를 저장한 객체 // == DBeaver에서 사용하는 DB 연결과 같은 역할의 객체 // (DB 서버 주소, 포트번호, DB이름, 계정명, 비밀번호..

BackEnd/Java 2024.09.02

[JDBC] dto / dao / common(Template) / run / service / view

DTO(Data Transfer Object)- 값을 묶어서 전달하는 용도의 객체- DB에 데이터를 전달하거나, 가져올 때 사용  → DB 특정 테이블의 한 행의 데이터를 저장할 수 있는 형태로 class 작성DAO(Data Access Object) JDBCTemplateJDBC 관련 작업을 위한 코드를 미리 작성해서 제공하는 클래스 - getConnection() + AutoCommit false - commit() / rollback()  - 각종 close()Service- 비지니스 로직 처리- DB에 CRUD 후 결과 반환 받기   +  DML 성공 여부에 따른 트랜잭션 제어 처리(commit/rollback) → commit/rollback에는 Connection 객체가 필요하기 때문에    ..

BackEnd/Java 2024.08.27

[Servlet/JSP]Redirect(재 요청)

▶ Redirect(재요청)클라이언트의 요청을 받은 Servlet/JSP에서직접 응답하지 않고다른 Servlet/JSP를 다시 요청 하는 것 1)  보통 Servlet 요청 처리 후 특정 JSP로 요청을 위임해결과 화면을 응답해 주는 것이 아닌다른 Servlet을 다시 요청하여다른 Servlet의 결과 화면을 응답해줌(요청 받은 Servlet이 응답해줄 JSP가 없음) 2) redirect는 다시 요청 하는 것!!!→ 기존 client의 req, resp 객체가 "사라지고" 새로운 "req, resp 객체가 생성"된다!!! → request scope에 세팅된 값들이 모두 사라짐!! 3) redirect는 응답 화면의 주소가처음 요청한 Servlet 주소가 아닌다시 요청한 Servlet 주소로 변경된다!..

BackEnd/Java 2024.08.16

[Servlet/JSP]Forward(요청 위임)

▶ forward(요청 위임) - 클라이언트 요청을 받은 Servlet/JSP가직접 응답하는 것이 아닌다른 Servlet/JSP에HttpServletRquest, HttpServletResponse객체를 넘겨서(위임) 대신 응답하게 하는 것 - 요청 위임시RequestDispatcher(요청 발송자)를 이용 - 요청 위임할 JSP ***파일 경로*** 작성 - 응답 화면(결과 페이지) 주소는처음 Servlet이 요청 받은 주소 그대로! #예제forward 입력 1 : forward 입력 2 : forward 확인하기 [Servlet]package edu.kh.jsp2.controller;import java.io.IOException;import jakarta.servlet.ServletException..

BackEnd/Java 2024.08.16