>Java >java지도 시간 >Spring Boot와 MyBatis Plus를 기반으로 ORM 매핑 구현

Spring Boot와 MyBatis Plus를 기반으로 ORM 매핑 구현

王林
王林원래의
2023-06-22 21:27:42929검색

Java 웹 애플리케이션 개발 과정에서 ORM(Object-Relational Mapping) 매핑 기술을 사용하여 데이터베이스의 관계형 데이터를 Java 객체에 매핑함으로써 개발자가 데이터에 편리하게 접근하고 조작할 수 있습니다. 현재 가장 널리 사용되는 Java 웹 개발 프레임워크 중 하나인 Spring Boot는 MyBatis를 통합할 수 있는 방법을 제공했으며, MyBatis Plus는 MyBatis를 기반으로 확장된 ORM 프레임워크입니다. 이 기사에서는 Spring Boot와 MyBatis Plus를 사용하여 ORM 매핑을 구현하는 방법을 소개합니다.

1. Spring Boot는 MyBatis Plus를 통합합니다.
Spring Boot에서 MyBatis Plus를 사용하는 것은 매우 간단합니다. MyBatis Plus의 종속성을 Maven에 추가하기만 하면 됩니다.

<dependency>
  <groupId>com.baomidou</groupId>
  <artifactId>mybatis-plus-boot-starter</artifactId>
  <version>3.4.2</version>
</dependency>

동시에 MyBatis Plus 관련 매개 변수를 application.properties 또는 application.yml에 아래와 같이 구성합니다.

#数据库配置
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
spring.datasource.url=jdbc:mysql://localhost:3306/mybatis_plus?useUnicode=true&characterEncoding=UTF-8&serverTimezone=UTC
spring.datasource.username=root
spring.datasource.password=123456
#MyBatis Plus配置
mybatis.configuration.cache-enabled=false
mybatis.mapper-locations=classpath:mapper/*.xml

그 중 드라이버 클래스 이름, URL, 사용자 이름 및 비밀번호는 데이터베이스 관련 구성이며, mapper-locations는 MyBatis Plus의 SQL 매핑 구성 파일이 위치한 경로입니다.

2. 엔터티 클래스와 매퍼 인터페이스 정의
MyBatis와 마찬가지로 MyBatis Plus를 사용하려면 엔터티 클래스와 매퍼 인터페이스도 정의해야 합니다. 다음은 해당 엔터티 클래스와 매퍼 인터페이스를 정의하기 위한 예로 간단한 사용자 테이블을 사용합니다.

  1. 엔티티 클래스 정의
@Getter
@Setter
@Builder
@NoArgsConstructor
@AllArgsConstructor
public class User {

    private Integer id;
    private String name;
    private Integer age;
    private String email;
    private Integer gender;
    private LocalDateTime createTime;
    private LocalDateTime updateTime;

}

@Getter, @Setter 및 @Builder 주석을 사용하면 코드를 단순화할 수 있으며, @NoArgsConstructor 및 @AllArgsConstructor는 매개변수 없는 생성자와 전체 매개변수 생성자를 생성하는 데 사용됩니다.

  1. 매퍼 인터페이스 정의
public interface UserMapper extends BaseMapper<User> {
}

MyBatis Plus에서 제공하는 BaseMapper가 여기에 사용되어 지루한 SQL 작업을 많이 줄일 수 있습니다.

3. 데이터베이스 작업에 MyBatis Plus를 사용하세요
Mapper 인터페이스를 정의한 후 데이터베이스 작업에 MyBatis Plus를 사용할 수 있습니다.

  1. Insert data
User user = User.builder()
        .name("test")
        .age(20)
        .email("test@test.com")
        .gender(1)
        .createTime(LocalDateTime.now())
        .updateTime(LocalDateTime.now())
        .build();
int count = userMapper.insert(user);

데이터를 삽입할 때 Mapper 인터페이스에서 제공하는 insert 메소드를 직접 사용할 수 있으며, 마이바티스 플러스는 자동으로 엔터티 클래스의 속성을 데이터베이스의 해당 열에 매핑합니다.

  1. 데이터 쿼리
List<User> userList = userMapper.selectList(null);

데이터 쿼리 시 Mapper 인터페이스에서 제공하는 selectList 메서드를 직접 사용하고 null 또는 빈 QueryWrapper 개체를 전달하여 모든 데이터를 쿼리할 수 있습니다. 또한 아래와 같이 MyBatis Plus에서 제공하는 람다 식과 체인 연산을 사용하여 보다 복잡한 쿼리를 수행할 수도 있습니다.

QueryWrapper<User> wrapper = Wrappers.<User>lambdaQuery()
        .eq(User::getGender, 1)
        .ge(User::getAge, 20)
        .orderByDesc(User::getCreateTime);
List<User> userList = userMapper.selectList(wrapper);

위 코드에서 QueryWrapper는 Wrappers.4c8e0c17c3bd7e0081bb17cc795e1984lambdaQuery() 개체를 사용하여 정의됩니다. .eq, .ge 및 .orderByDesc 체인 작업을 통해 쿼리 조건 및 정렬 규칙을 구축합니다.

  1. Update data
User user = userMapper.selectById(id);
user.setAge(30);
int count = userMapper.updateById(user);

데이터를 업데이트할 때 먼저 selectById를 통해 업데이트가 필요한 데이터를 쿼리한 후 업데이트가 필요한 속성을 수정하고 updateById를 이용해 수정된 데이터를 데이터베이스에 업데이트할 수 있습니다.

  1. 데이터 삭제
int count = userMapper.deleteById(id);

마지막으로 데이터를 삭제할 때는 Mapper 인터페이스에서 제공하는 deleteById 메소드를 호출하면 됩니다.

4. 결론
이 글에서는 Spring Boot와 MyBatis Plus를 사용하여 ORM 매핑을 구현하는 방법을 소개하고, 간단한 구성과 코드를 통해 데이터베이스 작업을 수행할 수 있습니다. MyBatis Plus는 MyBatis의 확장 프레임워크로서 코드의 가독성과 유지 관리성을 향상시키면서 개발자의 작업량을 크게 단순화할 수 있습니다. 지면의 제약으로 인해 이 글에서는 MyBatis Plus의 기본적인 사용법만 소개합니다. 보다 고급 기능에 대해서는 공식 문서를 참고하시기 바랍니다.

위 내용은 Spring Boot와 MyBatis Plus를 기반으로 ORM 매핑 구현의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.