본문 바로가기

db14

JPA | MyBatis | JDBC JPA (Java Persistence API)자바에서 객체와 관계형 데이터베이스를 매핑하는 표준 API엔티티 클래스를 통해 데이터를 객체로 관리하고, 객체 상태에 따라 자동으로 DB와 연동됨주로 Hibernate와 함께 사용됨JPA는 규격(specification)이고, Hibernate는 그 구현체(implementation)Hibernate는 JPA를 구현하면서, JPA가 정의한 기능을 지원하고, 그 외에도 Hibernate만의 고유 기능을 추가로 제공함@Entitypublic class User { @Id private Long id; private String name; // getter, setter}JPQL (Java Persistence Query Language)JP.. 2025. 3. 1.
[DB] Database "mem:testdb" not found, either pre-create it or allow remote database creation (not recommended in secure environments) [90149-200] 90149/90149 에러메시지 Database "mem:testdb" not found, either pre-create it or allow remote database creation (not recommended in secure environments) [90149-200] 90149/90149 에러 원인 [원인 1] /h2-console 에서 jdbc:h2:mem:testdb 데이터 베이스 찾을 수 없음 or 데이터 베이스를 미리 생성(pre-create) 불가 or 원격 데이터 생성 불가 [원인 2] h2 버전 중 1.4.197 과 1.4.198 사이에서 대규모 업데이트 진행 ➡ 데이터 베이스 미리 생성 방지 설정됨 해결 방법 [방법 1] application.properties에서 spring.datasourc.. 2022. 4. 3.
[Data Modeling] PK, UK, FK Primary Key (PK) / Unique Key (UK) Primary Key (PK) Unique Key 정의 테이블의 각 레코드 구별값 테이블 내에서 항상 유일해야 하는 값 제약조건 각 테이블의 식별자 역할 각 컬럼에 입력되는 데이터가 유일하다는 것을 보장 특징 * 각 테이블 당 하나만 설정 가능(기본키), 반드시 하나의 컬럼으로만 구성되는 것은 X * 중복 허용 X * 데이터 유일성 보장돼야 함 * Unique Index (고유 인덱스) 자동 생성 * NOT NULL + Unique 제약조건 결합 * 각 테이블 내에서 여러 개 지정 가능 * 중복 허용 X * Unique Index (고유 인덱스) 자동 생성 * NULL 허용 Foreign Key (FK) Foreign Key (FK) 정의 외.. 2022. 3. 26.
[MyBatis] java.lang.NumberFormatException: For input string "F" 오류 소스 원인 '' 작은 따옴표 문제 작은 따옴표로 한 문자를 감싸면 숫자로 인식 ➡ 타입 에러 발생 문자열 비교 시 해당 문자열을 큰 따옴표로 감싸기 수정 소스 2022. 2. 18.
[MySQL] 윈도우 부팅 시 자동 실행 설정 서비스 실행 MySQL 시작유형 확인 MySQL 속성 설정 1. 시작유형 * 자동 : 윈도우 실행 시 자동으로 서버가 서비스 형태로 실행됨 * 수동 : 윈도우 실행 시 MySQL 서버 자동 실행을 막으려면 수동으로 변경 (이 경우, "시작" 버튼 클릭 후 MySQL 서버 실행) 2. 서비스 상태 * MySQL 미작동 시 : 해당 서비스가 "실행 중"인지 확인 * 중지 : 서버 정지시키기 출처 : https://zoosso.tistory.com/331 2022. 2. 15.
[MySQL] NOT IN(): 특정 값 제외하고 SELECT NOT IN() 특정 값을 제외하고 데이터 조회(SELECT) -- NOT IN() 문법 NOT IN('제외할 값1','제외할 값2', ... etc.) SELECT * FROM TABLE_NAME WHERE COLUMN_NAME NOT IN ('제외할 값1','제외할 값2'); -- 예제 SELECT * FROM MEMBER WHERE MEMBER_TYPE NOT IN ('A','B'); -- 결과 -- MEMBER_TYPE이 A, B가 아닌 MEMBER 값들이 조회됨 2022. 2. 15.
[MySQL] SUBSTRING_INDEX(): 원하는 구분자 기준 문자열 자르기 SUBSTRING_INDEX() 원하는 구분자 기준으로 문자열 자르는 함수 -- SUBSTRING_INDEX() 문법 SUBSTRING_INDEX(문자열, 구분자, 구분자 인덱스) -- 예제1 SELECT SUBSTRING_INDEX('120.0.0.1', '.', 3) AS SUB_IP FROM TABLE_NAME; -- 결과1 120.0.0 -- 예제2 SELECT SUBSTRING_INDEX('120.0.0.1', '.', -1) AS SUB_IP FROM TABLE_NAME; -- 결과2 1 -- 예제3 SELECT SUBSTRING_INDEX('120.0.0.1', '.', -3) AS SUB_IP FROM TABLE_NAME; -- 결과3 0.0.1 2022. 2. 14.
[MySQL] 날짜 / 시간 / 통계 조회 날짜 / 시간 표현 #현재 시간(기본) : 2022-01-01 12:00:00 SELECT NOW(); #날짜 ONLY : 2022-01-01 SELECT DATE(NOW()); #시간 ONLY : 12:00:00 SELECT TIME(NOW()); #년도 ONLY : 2022 SELECT YEAR(NOW()); #월 ONLY : 1 SELECT MONTH(NOW()); #날짜 포맷 지정 : 2022/01/01 SELECT DATE_FORMAT(NOW(), '%Y/%m/%d'); #시간 포맷 지정 : 12 00 00 SELECT DATE_FORMAT(NOW(), '%H %i %s); 날짜 더하기 / 빼기 DATE_ADD DATE_SUB DATE_ADD(기준 날짜, INTERVAL) DATE_SUB(기준 .. 2022. 1. 11.
[MySQL] DATE_FORMAT(): 날짜, 시간 표기법 DATE_FORMAT()을 활용해 datetime 타입인 데이터의 형식을 바꿔보자 datetime 타입 데이터의 기본 형식 datetime 2022-01-06 22:00:00 SQL SELECT DATE_FORMAT(NOW(), '%Y-%m-%d') AS DATE FROM DUAL; -- NOW(): 현재 시간 결과 DATE 2022-01-06 참고 자료 Specifier Description %a Abbreviated weekday name (Sun..Sat) %b Abbreviated month name (Jan..Dec) %c Month, numeric (0..12) %D Day of the month with English suffix (0th, 1st, 2nd, 3rd, …) %d Day of .. 2022. 1. 6.
[MySQL] 조건 범위 설정 후 삭제 SQL DELETE FROM TABLE_NAME WHERE 50 < COLUMN_NAME AND COLUMN_NAME < 100; 가독성 위해 작은 수 < 값 < 큰 수 로 조건절 배치함 2022. 1. 3.
[Excel] "문자열+숫자"에서 숫자만 증가시키기 엑셀에서 문자열 + 숫자 값에서 숫자만 증가시키고 싶을 때 공식 예시 ="문자열_"&ROW()+시작숫자 //각 행 숫자와 일치하는 값으로 출력됨 ="문자열_"&ROW(첫행)+시작숫자 //원하는 값으로 특정지을 수 있음 실제 예시 A1 USER_100 A2 USER_101 ="USER_"&ROW()+100 ="USER_"&ROW($A1)+100 A3 USER_102 ="USER_"&ROW($A2)+100 A4 USER_103 ="USER_"&ROW($A3)+100 2022. 1. 3.
[MyBatis] mybatis invalid comparison: java.util.ArrayList and java.lang.String 에러 발생 MyBatis에서 Java Collection의 List와 String을 비교하면서 에러 발생 에러 코드 AND ITEM_ID IN #{item} 해결 방법 List에 맞는 조건으로 수정하기 수정한 코드 AND ITEM_ID IN #{item} 출처 : https://055055.tistory.com/47 2021. 12. 23.