일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | ||||
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 | 31 |
- forward #include #param
- #홍콩 #홍콩여행 #홍콩한달살기 #옥토퍼스카드
- JSP #액션태그 #
- #홍콩 #홍콩한달살기 #홍콩버스 #버스어플 #홍콩음식 #홍콩여행 #kmb #lwb#홍
- 서블릿 #Servlet #Request #Response #개발자
- 백엔드개념 #WAS
- #홍콩 #홍콩여행 #홍콩한달살기 #홍콩사이언스파크 #홍콩산책 #홍콩야경 #홍콩턱돌이
- #라이브러리 #개발자 #REACT #Bootstrap #REST API #웹 디자인 #디자인 툴
- #홍콩쌀국수 #탐차이
- #홍콩2층버스
- Servlet #JSP #GET #POST #클라이언트
- #라이브러리 #개발자 #REACT #Bootstrap
- JSP #표현언어 #page #include #taglib
- #홍콩 #홍콩여행 #홍콩한달살기 #홍콩집밥 #홍콩생활 #홍콩베이징구스 #홍콩산책 #홍콩조깅 #홍콩우편함
- #라이브러리 #개발자 #REACT #Bootstrap #REST API
- #라이브러리 #개발자 #REACT #Bootstrap #Visual Studio
- #홍콩여행 #홍콩국가 #홍콩지도 #홍콩날씨
- #라이브러리
- 블로그 태그 #국비 #국비학원 #IT #개발자 #프로그래머 #신입 #코딩 #안드로이드 #자바 #JAVA #오라클 #Oracle #SQL #MYSQL #HTML #CSS #JAVASCRIPT #자바스크립트 #서블릿 #SERVLET #JSP #자바스프링 #데이터베이스 #
- #국비 #국비학원 #IT #개발자 #프로그래머 #신입 #코딩 #안드로이드 #자바 #JAVA #오라클 #Oracle #SQL #MYSQL #HTML #CSS #JAVASCRIPT #자바스크립트 #서블릿 #SERVLET #JSP #자바스프링 #데이터베이스 #프레임워크
- #홍콩 #홍콩여애 #홍콩한달살기 #베트남식당 #viet'schoice #외식 #카레 #양지머리카레 #양지머리 #고기쌀국수 #육수존맛 #레몬차 #밀크티 #shatin #홍콩쇼핑 #asus노트북 #어댑터 #홍콩돼지코
- Today
- Total
기분좋음
국비 65 일차 본문
spring 2강
MVC (Model - View - Controller)
하나의 프로젝트 구성시, 구성요소를 3가지 역할로 나눈 패턴
많이 사용되는 소프트웨어 디자인 패턴 -더 나은 업무의 분리와 향상된 관리 제공
구성요소 | 설명 |
model | 데이터와 비즈니스 로직을 관리 |
view | 레이아웃과 화면 처리 |
controller | 명령을 모델과 뷰 부분으로 라우팅 (이벤트 처리) |
데이터베이스 언어 SET 변경 (한글 입출력 가능하게)
cmd 오픈
1. C:\>sqlplus /nolog
2. SQL> conn system/패스워드 as sysdba
3. SQL> UPDATE sys.props$ SET value$='AL32UTF8' WHERE name='NLS_CHARACTERSET';
4. SQL> UPDATE sys.props$ SET value$='AL16UTF16' WHERE name='NLS_NCHAR_CHARACTERSET';
5. SQL> commit;
6. SQL> shutdown immediate;
7. SQL> startup;
언어 SET 조회
SELECT NAME,VALUE$ FROM PROPS$ WHERE NAME ='NLS_LANGUAGE' OR NAME ='NLS_TERRITORY' OR NAME ='NLS_CHARACTERSET';
https://5happyman.tistory.com/84
환경설정 완료 후
데이터베이스(sql)연동후 테이블 생성
-HR계정으로 접속후 생성
Application.yml ddl-auto: create 상태 - 처음에 생성시에만
users.java
@Table
맵핑할 테이블을 지정
@Column
객체 필드와 DB테이블 속성을 맵핑
@SequenceGenerator
시퀀스 생성 (DB에서 생성한 시퀀스를 맵핑하고, 시퀀스를 생성) -(Entity와 함께 사용)
@Entity
클래스에 선언시 그 클래스는 JPA가 관리
@Id
기본키 맵핑 (직접할당)
@GeneratedValue
기본키 맵핑 (자동 생성) +@Id
속성
- strategy = GenerationType.IDENTITY 기본키 생성을 데이터베이스에 위임(AUTO_INCREMENT)-id값 null시
- strategy = GenerationType.SEQUENCE 유일한 값을 순서대로 생성 (시퀀스 값-id에 부여)
@Enumerated (열거)
엔티티 클래스의 속성으로 사용
- EnumType.STRING -enum 이름을 DB에 저장
- EnumType.ORDINAL -enum 순서 값을 DB에 저장
@DynamicInsert
ex ) 필드가 5개
insert into Users (createDate, email, password, username) values (?,?,?,?)
디폴트 값을 넣기 위해선 필드를 명시하지 않고 넣어줘야한다.
insert into Users (createDate, email, password, username) values (?,?,?,?,?)
필드 명시하고 값을 넣지 않는 경우 null이 입력된다. →@DynamicInsert사용 ( insert시 null인 필드 제외 )
boards.java
@LOB (Large OBject)
default로 varchar(255) → 대용량 설정 4GB
@ManyToOne -단방향
하나의 사용자가 여러개의 게시물 가능
@OneToMany -양방향
하나의 게시물의 여러개의 댓글 가능
속성
- fetch = FetchType.EAGER -즉시로딩
- fetch = FetchType.LAZY -지연로딩
실무에선 가급적 지연로딩 사용 (즉시 로딩 적용시 예상치 못한 SQL발생)
@JoinColumn
테이블 간 외래키로 연관관계를 맺는다
reply.java
@Autowired
필요한 의존 객체의 타입 에 해당하는 빈을 찾아 의존성 주입
생성자, setter , 필드
@PathVariable
-URL 경로에 변수를 넣어준다
{템플릿 변수}와 동일한 이름을 갖는 파라미터 추가
IllegalArgumentException
적합하지 않은 인자를 메소드에 넘겨주었을 때 발생
@PageableDefault
pageable객체의 기본 설정해줄때 사용
page-현재페이지 n부터 시작, size-한페이지에 노출할 데이터 수, sort-정렬 속성 direction-정렬방향
해설
JpaRepository인터페이스를 상속하는 인터페이스를 만든다 (미리 검색 메소드를 정의)
자동으로 Bean 등록 된다.
데이터를 save, update, delete등 가능하게 됨
JpaRepository<엔티티 클래스name, id 필드타입>
private UserRepository usertRepository;
객체를 집어넣은 후, 메서드를 사용시 DB에 데이터를 insert한다.
Post방식으로 저장된 정보를 가져온다.
update시 put방식 사용
@Transactional
클래스, 메소드 위에 사용해서 트랜젝션 기능이 적용된 객체가 생성
@Transactional이 포함된 메소드가 호출될 경우 트랜젝션이 시작하고, 정상여부에 따라 commit 또는 rollback을 한다.
delete 사용시 delete방식 상요
DB에 데이터 삭제
EmptyResultDataAccessException
해당 id로 조회시 유저정보가 null일 경우 예외처리