Spring_DAY4

이정찬·2023년 2월 9일
0

Spring

목록 보기
4/4
  • @ExceptionHandler를 메소드나 클래스 위에 써주면, 알아서 try-catch 해준다. @ExceptionHandler({직접 만든 예외 클래스명}.class)로 쓸 수도 있다.

  • jsp의 RequestDispatcher와 비슷한 것이 @RequestMapping의 return문이다.

  • web.xml은 웹 관련 설정, server.xml은 서버 관련 설정, tomcat-users.xml은 톰캣 관련 설정이다. 한번만 설정하는 설정은 context.xml이다. (부트에는 없다)

  • 부트에서는 상기 xml 파일 설정들이 다 application.properties에 들어가게 된다.

JPA

  • VO class 위에 @Table(name="MEMBER_JPA") 쓰고, application.properties에 spring.jpa.hibernate.ddl-auto=create를 써주면, 테이블이 없을 시 클래스 정보를 가져와서 만들어준다.
  • @Entity: 이게 있어야 테이블 만들기가 잘 수행된다.
  • @Data: lombok 통해 설정한 것. getter, setter 등 다 알아서 있다고 쳐준다.
// application.properties
spring.jpa.hibernate.ddl-auto=create

//MemberVO_JPA.java
@Entity
@Data
@AllArgsConstructor
@NoArgsConstructor
@Table(name="MEMBER_JPA")
public class MemberVO_JPA {

	//thymeleaf 기본타입들은 wrapclass type(Integer,Long,,) 
	@Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
	@Column(name="num")
	private Integer num;

	@Column(name="user_id")
	private String id;
	
	
	@Column(name="user_pw")
	private String pw;
	
	
	@Column(name="user_name")
	private String name;
	
	
	@Column(name="user_tel")
	private String tel;
	
//	@Column(name="regdate",insertable = false,updatable = false)
//	@Column(name="regdate",insertable = false)
//	@ColumnDefault(value="CURRENT_TIMESTAMP")
//	private Date regdate;
}
  • JPA에는 Mapper가 없다 대신 Repository가 있다.

  • JPA에서 Service의 save() 함수는 실제로 선언되지 않아도 작동한다. 테이블을 반환한다.

  • IOC: 객체를 프로그램 로딩시간에 만들어두고, '느슨한 사용'을 한다면, IOC

  • DI: Dependency Injection

  • AOP: 공통 로직을 사용하는 관점 지향 프로그래밍

  • CrudRepository에 있는 내장함수들은 유용한 것들이 많다. count()는 쓰면 row 갯수 반환해준다.

  • JPQL : Entity객체를 테이블로 보고 쿼리를 정의

@Query("select t from MemberVO_JPA t where t.num >= 1 and t.num < 1 + ?1") JPQL은 이렇게 쓰고, AS 필수에 *을 쓰지 않음에 주의한다.

profile
개발자를 꿈꾸는 사람

0개의 댓글