728x90
반응형
● Camel Case : 단어를 표기할 때 첫 문자는 소문자로 시작하며 띄어쓰기 대신 (대문자)로 단어를 구분합니다.
* Java의 변수는 선언할 때 camelCase로 선언합니다.
● Snake Case : 단어를 표기할 때 모두 소문자로 표기하며, 띄어쓰기 대신 언더바(_)로 표기합니다.
* DB테이블 및 컬럼에 사용됩니다.
* API 정의하기에 따라 다르지만 주로 API 통신 규격을 만들 때 사용됩니다.
# JPA(Java Persistent API)
ORM(Object Relatianal Mapping)으로 RDB데이터베이스의 정보를 객체지향으로 손쉽게 활용할 수 있도록 도와주는 도구입니다. 자바객체와 관계형 데이터베이스 둘간의 맵핑을 통해서 보다 손쉽게 적용할 수 있는 기술을 제공합니다. 또한 쿼리에 집중하기 보다는 객체에 집중함으로써, 조금 더 프로그램적으로 많이 활용할 수 있습니다.
-- 테이블 만들기
create table tb_user (
id number not null,
userid varchar2(20) not null,
username varchar2(10) not null,
regdate date,
updatedate date
);
-- 시퀀스 만들기(oracle 에는 auto_increament 기능이 없어 시퀀스를 만들어준다.)
create sequence user_seq increment by 1
start with 1 --시작값
minvalue 1 --최소값
maxvalue 99999999 --최대값
nocycle; -- 순환하지 않는다.
-- insert 적용
insert into tb_user (id, userid, username, regdate, updatedate)
values (user_seq.nextval, 'apple', '김사과', '2020-11-05', '2020-11-05');
insert into tb_user (id, userid, username, regdate, updatedate)
values (user_seq.nextval, 'banana', '반하나', '2020-11-05', '2020-11-05');
insert into tb_user (id, userid, username, regdate, updatedate)
values (user_seq.nextval, 'oragne', '오렌지', '2020-11-05', '2020-11-05');
select * from tb_user;
* user_seq.nextval : 시퀀시가 적용되는 것
# Entity
JPA에서 테이블을 자동으로 생성관리 해주는 기능을 가진 객체
★ DB Table == JPA Entity 와 같은 의미
.java
@Entity
@SequenceGenerator(
name="USER_SEQ_GEN",
sequenceName ="USER_SEQ",
initialValue = 1, // 1부터 시작
allocationSize = 1 // 1칸씩 만듦
)
@Data
@NoArgsConstructor
@AllArgsConstructor
public class TbUser {
@Id
@GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "USER_SEQ_GEN")
private Long id;
private String userId;
private String userName;
private LocalDateTime regDate;
private LocalDateTime updateDate;
}
- 문제
테이블 만들기
tb_profile
userid : tb_user의 id(primaty key)와 연결
age : 숫자
hp : 문자(20)
email : 문자(50)
gender : 문자(10)
* tb_user.id 기본키
* userid 외래키
create table tb_profile(
userid number not null,
age number not null,
hp varchar(20) not null,
email varchar2(50),
gender varchar2(10)
);
ALTER TABLE tb_user add constraint user_pk primary key (id);
alter table tb_profile add constraint profile_fk foreign key (userid) references tb_user(id);
insert into tb_profile values(22, 20, '010-1111-1111', 'apple@apple.com', '여자');
insert into tb_profile values (23, 25, '010-2222-2222', 'orange@orange.com', '남자');
-- ANSI SQL, 조인 : user.userid, user.username, profile.hp, profile.age, profile.gender
select tb_user.userid, tb_user.username, tb_profile.hp, tb_profile.age, tb_profile.gender
from tb_user inner join tb_profile on tb_user.id = tb_profile.userid;
-- ORACLE
SELECT tb_user.userid, tb_user.username, tb_profile.hp, tb_profile.age, tb_profile.gender
from tb_user, tb_profile where tb_user.id = tb_profile.userid;
SELECT u.userid, u.username, p.hp, p.age, p.gender
from tb_user u, tb_profile p where u.id = p.userid;
728x90
반응형
'🌏 DataBase > MySQL' 카테고리의 다른 글
[DB] 13.PL/SQL (0) | 2020.11.06 |
---|---|
[DB] 12. 뷰(VIEW) (Feat.Oracle) (0) | 2020.11.05 |
[DB] 10. ResultSet & PreparedStatement 클래스 (0) | 2020.10.12 |
[DB] 9. Statement(인터페이스) (0) | 2020.10.11 |
[DB] 8. MySQL 과 JAVA 연결 (0) | 2020.10.11 |