전체 글 (74) 썸네일형 리스트형 인텔리 J에 Database 연결해서 사용하기 인텔리 J를 사용하면서 다음과 같이 DB 정보도 한번에 볼 수 있도록 해보자! ( 항상 DB 따로 띄웠었는데... ) ctrl+shift+a 눌러서 Database 검색해서 열어주거나 View - Tool Windows - Database를 클릭해서 창을 연다 그러면 인텔리 J 화면 오른쪽에 DB 정보를 띄울 수 있는 창이 보인다.+누르고, Data source에 연결할 수 있는 DB이 보인다.일단 기본적으로 사용하고 있는 H2를 연결해보고자 한다. 그러면 다음과 같은 창이 뜬다.여기에 db에 대한 정보 값을 입력해주면 된다.값을 입력해준 다음 TEST CONNECTION을 해보자.드라이버 파일이 설치되어있지 않다고 한다.. 드라이버 파일을 설치해주도록 하자.그리고 db정보를 참고해서 연결해주도록 한다... JPA 연관관계 매핑 -양방향 매핑 양방향 연관관계객체에서 Member에서 Team으로 이동하고, Team에서 Member를 불러올 수 있도록 만들고 싶다. 좀 더 객체 지향적으로! 단 DB 바뀌지 않는다. DB는 방향x Member에 Team team을 만들고 Team에 List members를 만든다. (1대 다니까) @Entity public class Team{ @Id @generatedValue(strategy=GenerationType.AUTO) private Long id; private String name; @OneToMany(mappedBy = "team") List members = new ArrayList(); ... }반대의 일을 할 수 있음!다시 Main으로 와서 코드를 짜보자.Team findTeam = em.f.. JPA 연관관계 매핑-단방향 매핑 '객체지향 설계의 목표는 자율적인 객체들의 협력 공동체를 만드는 것이다.' -조영호(객체지향의 사실과 오해) 객체를 테이블에 맞추어 모델링 (연관관계가 없는 객체) 실무에선 이렇게 많이 쓰더라.. teamId 꺼내서 다시 Team에서 조회한다. 객체 연관관계가 없다. 실무에선 왜 이런 식으로 쓰게 되는걸까? 객체를 테이블에 맞추어 모델링하면 어떤 장점이 있을까????위 그림처럼 만들어보자.Member.java@Column(name = "TEAM_ID") private Long teamId;Team.java@Entity public class Team{ @Id @GeneratedValue(strategy= GenerationType.AUTO) private Long id; private String nam.. JPA 필드와 칼럼 매핑 필드와 컬럼 매핑데이터베이스 스키마 자동 생성하기-DDL을 애플리케이션 실행 시점에 자동 생성(JPA 통해서 직접 테이블 만들 수 있다)-테이블 중심 → 객체 중심-데이터베이스 방언을 활용해서 데이터베이스에 적절한 DDL 생성-이렇게 생성된 DDL은 개발 장비에서만 사용 (운영에서 JPA가 테이블 드랍하고, 만들고? 큰일 날 지도.)-생성된 DDL은 운영서버에서는 사용하지 않거나, 적절히 다듬은 후 사용해야 함. 데이터베이스 스키마 자동 생성하기-hibernate.hbm2ddl.auto create: 기존 테이블 삭제 후 다시 생성 (DROP + CREATE)(운영x) create-dorop: create와 같으나 종료시점에서 테이블 DROP(운영x) update: 변경분만 반영(운영x) validate.. JPA persistence.xml과 라이브러리 설정 pom.xml org.hibernate hibernate-entitymanager 5.4.9.Final 연습용 데이터베이스 h2 라이브러리 불러오기를 계속 실패해서 그냥 직접 불러다 쓰기러 했다. h2 폴더에 jar파일 있었고, 그걸 가져와서 쓰기로 했음!File- Project Structure 여기에 Libraries를 관리할 수 있는 탭이 있다.라이브러리에 hibernate-core 들어오게 된다.persistence.xmlresources > META-INF > persistence.xml로 관리 해당 포스팅은 T아카데미에서 진행한 김영한 강사님의 JPA 유튜브 강의를 듣고 정리한 것입니다 : ) https://www.youtube.com/watch?v=WfrSN9Z7MiA&list=PL9mhQY.. JPA 기초와 매핑 : 실습 maven projects에 만들고 멤버 정보를 담는 객체package reJPA.entity; import javax.persistence.*; @Entity public class Member { @Id private Long id; private String name; public Long getId() { return id; } public void setId(Long id) { this.id = id; } public String getName() { return name; } public void setName(String name) { this.name = name; } } persistence.xml 애플리케이션 개발엔티티 매니저 설정 엔티티 팩토리 만들어서 거기서 엔티티 매니저 생성해서 .. JPA 기초와 매핑 객체 매핑하기@Entity : JPA 가 관리할 객체를 엔티티라 부른다@Id : DB와 PK와 매핑 할 필드 @Entity public class Member{ @Id private Long id; private String name; ... }create table Member( id bigint not null, name varchar(255), primary key (id) )실습을 위해서 db에 그냥 테이블 만든거야.persistence.xml-JPA 설정 파일 -/META-INF/persistence.xml 위치 -javax.persistence로 시작 : JPA 표준 속성 -hibernamte로 시작 : 하이버네이트 전용 속성 데이터베이스 방언dialect: 방언이게 왜 있냐? JPA는 특정 .. JPA에 대해서 JPA - Java persistence APIJPA, 객체지향과 RDB 에 대한 고민을 했어. 이런 문제를 해결하기 위해서 JPA를 자바 진영의 ORM 표준기술로 제공하고 있어. ORM은 뭐냐?:Object-Relational Mapping(객체 관계db 매핑)-객체는 객체대로 설계-관계형 DB는 관계형 DB대로 설계-ORM 프레임워크가 중간에서 매핑!-대중적인 언어에는 대부분 ORM 기술이 존재하고 있다. JPA는 애플리케이션과 JDBC 사이에서 동작한다 JPA는 어려운 개념이 아니다. 단순히 JAVA의 객체 -JDBC API - DB의 사이에서 매핑해주는 역할을 해준다. 예를 들어서 MemberDAO에 회원객체를 딱 넘기면(persist) JAP가 분석해서 INSERT 쿼리를 짬. 그리고 JDBC .. 이전 1 2 3 4 5 6 7 ··· 10 다음