728x90

데이터베이스 27

[JPA] JPA의 다양한 연관관계 매핑

연관관계참조 다대일(@ManyToOne) [단방향, 양방향] 일대다(@OneToMany) [단방향, 양방향] 일대일(@OneToOne) [주 테이블 단방향, 양방향], [대상 테이블 양방향] 다대다(@ManyToMany) [단방향, 양방향] 다대일(@ManyToOne) - 단방향 member -> team @Entity public class Member { @Id @GeneratedValue @Column(name = "MEMBER_ID") private Long id; private String username; @ManyToOne @JoinColumn(name = "TEAM_ID") private Team team; .... } @Entity public class Team { @Id @Genera..

Database 2023.01.19

[SQL] 계층형 쿼리(Hierarchical Query)란?

SQLD를 공부할때, 읽는것만으로 이해가 잘 안되서 계층형 쿼리에 대해 한 번 알아보고자 한다. 계층형 쿼리란 테이블에 계층형 데이터가 존재하는 경우 이를 조회하기 위한 쿼리이다. 먼저 계층형 데이터란? 동일 테이블에 계층적으로 상위와 하위 데이터가 포함된 데이터를 말한다. 예시로 하드웨어 계층적 구조를 살펴보면, 중앙처리장치와 기억장치, 입력장치의 상위 데이터는 하드웨어이며, 하드웨어의 하위 데이터는 중앙처리장치, 기억장치, 입출력장치 3개이다. ex) 테이블로 나타냈을때 예시 장치이름 상위장치 1 하드웨어 null 2 중앙처리장치 하드웨어 3 기억장치 하드웨어 4 입출력장치 하드웨어 5 입력장치 입출력장치 6 출력장치 입출력장치 계층의 쿼리의 형태를 살펴보자. START WITH 조건 CONNECT ..

Database 2022.01.22

[JPA] JPA 기본 시작

persistence.xml 통해 필요한 설정 정보를 관리 package jpabook.start; import javax.persistence.*; import java.util.List; /** * @author holyeye */ public class JpaMain { public static void main(String[] args) { //엔티티 매니저 팩토리 생성 EntityManagerFactory emf = Persistence.createEntityManagerFactory("jpabook"); EntityManager em = emf.createEntityManager(); //엔티티 매니저 생성 EntityTransaction tx = em.getTransaction(); //트랜..

JAVA 2021.12.21

[JPA] JPA란 무엇인가?

JPA(Java Persistence API) : 자바 진영의 ORM 기술 표준 그렇다면 ORM은? (Object Relational Mapping) ORM은 이름 그대로 객체와 관계형 데이터베이스를 매핑한다는 뜻. ORM프레임워크는 객체와 테이블을 매핑해서 패러다임의 불일치 문제를 개발자 대신 해결해준다. 왜 JPA를 사용해야 하는가? 1) 생산성 JPA를 사용하면 다음 코드처럼 자바 컬렉션에 객체를 저장하듯이 JPA에게 저장할 객체를 전달하면 된다. INSERT SQL을 작성하고 JDBC API를 사용하는 지루하고 반복적인 일은 JPA가 대신 처리해준다. jpa.persist(member);//저장 Member member = jpa.find(memberId);//조회 그렇기때문에 지루하고 반복적인 ..

JAVA 2021.12.21

[Node.js] #7 시퀄라이즈(Sequelize)

※ 시퀄라이즈(Sequelize)를 사용하기전에 데이터베이스 MySQL이 설치가 되어 있어야 합니다. 시퀄라이즈는 ORM(Object-relational Mapping)으로 분류. ORM은 자바스크립트 객체와 데이터베이스의 릴레이션을 매핑해주는 도구. MySQL뿐만 아니라 MariaDB, PostgreSQL, SQLite, MSSQL 등 다른 데이터베이스와도 함께 쓸 수 있다. 왜 시퀄라이즈를 써야하는가? → 자바스크립트 구문을 알아서 SQL로 바꿔주기 때문. 따라서 SQL언어를 직접 사용하지 않아도 자바스크립트만으로 MySQL을 조작 할 수가 있다. [시퀄라이즈에 필요한 패키지 설치] npm i express morgan nunjucks sequelize sequelize-cli mysql2 npm i..

node.js 2021.11.18

[SQL] DDL, DML, DCL, TCL 구별

SQL 및 DB를 하는데 있어서 가장 기본적인 DDL DML DCL TCLㅣ을 알아보기 종류 명령어 설명 데이터 조작어 (DML : Data Maniputation) SELECT 데이터베이스에 들어있는 데이터를 조회하거나 검색하기 위한 명령어 INSERT UPDATE DELETE 데이터베이스의 테이블에 있는 데이터의 변형을 할 수 있는 명령어 (데이터 삽입, 수정, 삭제 등) 데이터 정의어 (DDL : Data Definition Language) CREATE ALTER DROP TRUNCATE 테이블과 같은 데이터 구조를 정의하는데 사용하는 명령어 (생성, 변경, 삭제 등) 데이터 제어어 (DCL : Data Control Language) GRANT REVOKE 데이터베이스에 접근하고 객체들을 사용 ..

Database 2021.10.15

[MySQL] Varchar 형태 Date로 변환

데이터베이스를 이용하다가 날짜의 형태를 String으로 저장한적이 있었다. 범위가 길어지다보니 String보다 Date 타입으로 변환해서 사용하는게 좋을것 같아서 Varchar형에서 Date로 변환하는법을 알아보고자 한다. 생각보다 아주 간단하다. UPDATE table_name SET table_col = STR_TO_DATE(table_col, '%Y-%m-%d') 형태로 해결하면 된다. STR_TO_DATE를 사용하면 된다는 말씀! 여기서 date 필드값을 다르게 변경해줘야 할때가 있는데 예 시 적 용 2021-09-21 %Y-%m-%d 21-9-21 %y-%m-%d Sep 21 2021 %M %d, %Y 해당 테이블을 참고해서 적용하면 된다. 보통은 %Y-%m-%d를 많이 사용하는듯!

Database 2021.09.29

[Java] String을 Date 타입으로 변환 할 때

자바와 데이터베이스 연동중 날짜를 웹으로 가져오는데, 날짜를 yyyy-mm-dd 형태로 가져오는게 아니라 이상한 숫자로 ex) 670089412100 식으로 가져고 와서 검색을 해보았다. 날짜정보를 가져와야하는데 String이 아니라 Data 타입으로 적용되어 있지만, Oracle에는 Date 클래스가 2종류라는것을 알게 되었다. java.util.Date : 날짜타입과 연동불가 java.sql.Date : 날짜타입과 연동 가능 Date 타입의 Import를 util에서 sql으로 변경을 해주니 내가 원하는 yyyy-mm-dd 값을 잘 가지고 왔다. mysql에서 실험해봤으나 동일하게 적용되었음!

JAVA 2021.08.19
728x90