- 구동 방식 1) persistence.xml을 통해 데이터 베이스를 연결하여 EntityManagerFactory를 생성한다 2) 고객의 요청에 따라 EntityManger를 생성하여 작업을 해야한다 3) JPA의 모든 데이터 변경은 EntitiyManger로 생성된 트랜잭션 안에서 실행한다 4) 커밋을 할때까지 실제 데이터 베이스의 데이터는 바뀌지 않음 - Example ※ Member.class @Entity와 @Id를 지정해줘야 jpa에서 인식함 @Entity public class Member { @Id private Long id; private String name; public Long getId() { return id; } public void setId(Long id) { this...
JPA 란? - java Persistebce API를 줄인 말로 자바 객체와 RDBMS(관계형 데이터베이스)간의 패러다임 불일치를 해결하기 위한 자바 ORM 1) ORM - Object-Relational-mapping (객체 관계 매핑) - 관계형 데이터 베이스와 객체관의 매핑 정보로 ORM 프레임워크가 중간에서 매핑. JPA 동작 원리 - JAVA 어플리케이션과 DB사이에 위치하여 매핑된 정보를 통해 만들어진 SQL문을 JDBC API를 통해 DB에 전달한다. - 전달 받은 데이터는 Entity Object로 변환하여 사용한다. JPA를 사용 하는 이유 1) SQL 중심 개발 -> 객체 중심 개발 - 객체간의 매핑된 객체를 기준으로 JPA에서 SQL문을 생성하기 때문에 객체 중심적으로 개발 가능. ..
1. AOP란 어떤 서비스나 메서드가 실행되기전에 공통적으로 들어 가야할 이벤트, 메서드 등이 필요 할때 사전에 정의해둔 클래스를 작동하고 나서 실제 서비스가 작동하게 하는 것. 2. AOP의 장점 불필요한 비지니스 로직이 줄어서 좀 더 직관적인 비지니스 로직을 짤 수 있음. 3. 사용 예시 @Aspect @Component public class TimeTraceAop { @Around("execution(* hello.hellospring..*(..))") public Object execute(ProceedingJoinPoint joinPoint) throws Throwable { long start = System.currentTimeMillis(); System.out.println("START..
1. jdbc 란 JDBC는 자바에서 데이터베이스에 접속할 수 있도록 하는 자바 API이다. 2. jdbc 사용 -연결 private Connection getConnection() { return DataSourceUtils.getConnection(dataSource); } .getConnection(datasource) 주어진 데이터 소스에서 JDBC 연결 - 사용 public Member save(Member member) { String sql = "insert into member(name) values(?)"; Connection conn = null; PreparedStatement pstmt = null; ResultSet rs = null; try { conn = getConnectio..
@GetMapping(조회) - controller example @GetMapping("/members/new") public String createForm() { return "members/createMemberForm"; } ● 웹브라우저가 "http://localhost:8080/member/new"를 접속했을경우 스프링에서 resources/template안에 있는 members/createMemberForm.html을 조회할 수 있게 한다. @PostMapping(생성) - controller example @PostMapping("/members/new") public String create(MemberFrom form) { Member member = new Member(); memb..
- 테스트 해볼 코드들. ※ repository public class MemoryMemberRepository implements MemberRepository{ private static Map store = new HashMap(); private static long sequence = 0L; @Override public Member save(Member member) { member.setId(++sequence); store.put(member.getId(), member); return member; } @Override public Optional findById(Long id) { return Optional.of(store.get(id)); } @Override public Optio..