Spring11 Spring JPA / Entity 매핑 안녕하세요. 지난 JPA 포스팅에 이어서 이번 포스팅에는 JPA의 Entity 매핑에 대해서 작성을 하려고 합니다. JPA를 사용하면서 다양한 어노테이션을 사용을 해야하는데 오늘은 JPA에서 사용하는 어노테이션들과 어떻게 java 객체가 DB와 매핑이 되는지 작성을 하겠습니다. @Entity - Entity(엔티티)란 JPA에서 관리하는 DB와 매핑되는 객체를 뜻합니다. - JPA에서 DB 테이블과 매핑할 객체의 클래스에는 @Entity 어노테이션 사용 - Entity 클래스에서는 기본 생성자가 반드시 있어야 하며 final, enum, interface, inner 클래스는 사용할 수 없다. - name 옵션으로 JPA에서 사용할 엔티티 이름을 지정할 수 있다. @Table - Entity와 매핑할 테.. 2023. 6. 21. Spring JPA / JPA 안녕하세요. 예전에 JDBC, JdbcTemplate, Mybatis까지의 포스팅을 했었는데요. 이번에는 최근(?)이라기 보다는 몇년 전부터 떠오르고 있는 JPA에 대해서 작성을 하려고 합니다. 아직 대부분의 회사에서 Mybatis를 사용하는거로 알고있는데 JPA는 우아한 형제들, 쿠팡 등 규모가 있는 회사에서 JPA를 사용을 하고 있고 또 많은 기업들이 JPA로 개발을 하려는 시도를 하고 있다고 생각을 하고 있습니다. 저도 회사에서 JPA를 사용을 하다가 Mysql의 Stored procedure로 전환을 하면서 최근에는 회사 프로젝트에서 JPA를 사용할 일이 많이 없어졌지만 그래도 꾸준히 JPA를 공부를 하면서 다시 프로젝트에 적용 시킬 준비를 하고 있습니다. JPA JPA는 Java Persiste.. 2023. 6. 20. Spring AOP 지난 포스팅에서 @Async 어노테이션을 사용하여 비동기 멀티 스레드를 구현하는 방식에 대해서 포스팅을 했었다. 해당 기능은 Spring AOP의 기능이라고 작성을 했었는데 이번 포스팅에서는 Spring AOP가 무엇인지, 또 어떻게 사용을 하는지 포스팅을 하고자 한다. AOP란. AOP(Aspect-Oriented Programming)는 흩어진 Aspect를 모듈화 할 수 있는 프로그래밍 기법으로 OOP를 보완하는 수단으로 사용. 프로젝트 전반적으로 여러 메소드들에서 반복되는 코드 또는 로직을 모듈화 하여 재사용 할 수 있게 해주는 기능 가장 흔한 예를 들자면 로깅을 하는 기능이 있다고 했을 때 각 메소드 마다 성능 측정 로깅을 넣는다고 하면 메소드 내부에 반복되는 코드들이 계속 늘어날 것이며 유지보.. 2023. 6. 13. MyBatis 지난 포스팅에서는 jdbc와 jdbcTemplate에 대해서 간략 하게 다뤄봤다. 이번 포스팅에서는 java 개발에 있어서 가장 흔하게 사용하는 MyBatis를 다뤄보겠다. MyBatis란. - MyBatis는 SQL 쿼리와 Store Procedure의 매핑을 지원하는 퍼시스턴스 프레임워크이다. - 기존에 jdbc나 jdbcTemplate을 사용하는거에 비해 불필요한 중복 코드도 줄어든다. - Db Connection을 가져오고 PreparedStatement 객체를 생성 후 쿼리를 실행 시켜 ResultSet 객체로 결과값을 받아오는 일련의 JDBC 과정들이 Mybatis를 사용함으로써 더 간결한 코드를 작성 할 수 있다. (해당 과정은 지난 포스팅에서 확인 가능) - xml을 이용해 쿼리를 작성하여.. 2023. 6. 4. jdbc와 jdbcTemplate 1. JDBC - jdbc는 java database connectivity 의 약자로 java에서 데이터 베이스에 접근을 할 수 있게 만든 Java API다. - DriverManager 또는 Datasource 객체를 이용해 DB connection을 가져와서 사용한다. - Statement, PreparedStatement 객체를 이용해 쿼리를 생성한다. - ResultSet 객체를 이용해 쿼리의 결과값을 받아 올 수 있다. // DB config 파일에 bean 객체로 Datasoure 객체를 생성 @Bean public DataSource dataSource() { HikariConfig hikariConfig = new HikariConfig(); hikariConfig.setUsername(.. 2022. 10. 21. 이전 1 2 다음