>Java >java지도 시간 >MyBatis를 사용하여 Spring Boot에서 데이터 액세스 및 지속성 구현

MyBatis를 사용하여 Spring Boot에서 데이터 액세스 및 지속성 구현

WBOY
WBOY원래의
2023-06-22 14:37:571452검색

Spring Boot는 개발자가 웹 애플리케이션을 빠르게 구축하는 데 도움이 되는 신속한 개발 프레임워크입니다. MyBatis는 Java와 데이터베이스 간의 데이터 액세스 및 지속성을 단순화할 수 있는 탁월한 ORM 프레임워크입니다. 이 기사에서는 MyBatis를 사용하여 Spring Boot에서 데이터 액세스 및 지속성을 구현하는 방법을 소개합니다.

1. Spring Boot는 MyBatis를 통합합니다

  1. 종속성 추가

pom.xml 파일에 MyBatis 및 MySQL 종속성을 추가합니다.

<dependency>
    <groupId>org.mybatis.spring.boot</groupId>
    <artifactId>mybatis-spring-boot-starter</artifactId>
    <version>1.3.1</version>
</dependency>
<dependency>
    <groupId>mysql</groupId>
    <artifactId>mysql-connector-java</artifactId>
    <version>5.1.42</version>
</dependency>

여기에서는 mybatis-spring-boot-starter를 사용하여 MyBatis를 통합합니다.

  1. 데이터 소스 구성

application.properties에 데이터베이스 연결 속성을 추가하세요.

spring.datasource.url=jdbc:mysql://localhost:3306/test?useSSL=false
spring.datasource.username=root
spring.datasource.password=123456
spring.datasource.driverClassName=com.mysql.jdbc.Driver

여기에서는 MySQL 데이터베이스를 사용하고 비밀번호 123456의 루트 계정을 사용하여 연결합니다.

  1. MyBatis 구성

Spring Boot는 기본적으로 매퍼 경로를 자동으로 검색합니다. application.properties에서 매퍼 경로만 구성하면 됩니다.

mybatis.mapper-locations=classpath:mapper/*.xml

이 구성은 매퍼 파일이 프로젝트의 매퍼 폴더에 있음을 나타냅니다. 클래스 경로.

위 구성을 완료한 후 Spring Boot는 MyBatis 통합을 완료했습니다.

2. 엔터티 클래스 및 매퍼 작성

  1. 엔티티 클래스 작성

데이터베이스에서 사용자 테이블을 나타내는 사용자 클래스 정의:

public class User {
    private Long id;
    private String name;
    private Integer age;
    // 省略getter和setter方法
}
  1. 매퍼 작성

사용자 테이블 추가 정의를 위한 UserMapper 인터페이스 정의, 삭제, 수정 및 쿼리 작업:

public interface UserMapper {
    void saveUser(User user);
    void updateUser(User user);
    void deleteUser(Long id);
    User findUserById(Long id);
    List<User> findAllUsers();
}

여기에서는 모든 사용자를 추가, 삭제, 수정 및 쿼리하는 방법을 정의합니다.

3. Mapper.xml 작성

다음으로 UserMapper에 정의된 작업을 구현하기 위해 UserMapper.xml 파일을 작성해야 합니다.

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
        "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.example.demo.mapper.UserMapper">
    <insert id="saveUser" parameterType="com.example.demo.entity.User">
        insert into user(name, age) values (#{name}, #{age})
    </insert>

    <update id="updateUser" parameterType="com.example.demo.entity.User">
        update user set name = #{name}, age = #{age} where id = #{id}
    </update>

    <delete id="deleteUser" parameterType="java.lang.Long">
        delete from user where id = #{id}
    </delete>

    <select id="findUserById" parameterType="java.lang.Long"
            resultType="com.example.demo.entity.User">
        select * from user where id = #{id}
    </select>

    <select id="findAllUsers" resultType="com.example.demo.entity.User">
        select * from user
    </select>
</mapper>

이 파일에서는 UserMapper에 정의된 모든 메서드를 구현합니다. 여기서 매개변수 유형은 매개변수를 나타냅니다. Type, resultType은 반환 값 유형을 나타냅니다.

4. 서비스 클래스 및 컨트롤러 작성

  1. 서비스 클래스 작성

User 테이블의 작업을 캡슐화하는 UserService 클래스 정의:

@Service
public class UserService {
    @Autowired
    private UserMapper userMapper;

    public void saveUser(User user) {
        userMapper.saveUser(user);
    }

    public void updateUser(User user) {
        userMapper.updateUser(user);
    }

    public void deleteUser(Long id) {
        userMapper.deleteUser(id);
    }

    public User findUserById(Long id) {
        return userMapper.findUserById(id);
    }

    public List<User> findAllUsers() {
        return userMapper.findAllUsers();
    }
}

이 클래스에서는 @Autowired 주석을 사용하여 UserMapper를 삽입합니다. 즉, UserMapper에 정의된 메소드를 사용할 수 있습니다.

  1. 컨트롤러 작성

UserController 클래스를 정의하여 사용자에 대한 추가, 삭제, 수정 및 쿼리 작업을 구현합니다.

@RestController
@RequestMapping("/user")
public class UserController {
    @Autowired
    private UserService userService;

    @PostMapping("/")
    public String saveUser(@RequestBody User user) {
        userService.saveUser(user);
        return "success";
    }

    @PutMapping("/")
    public String updateUser(@RequestBody User user) {
        userService.updateUser(user);
        return "success";
    }

    @DeleteMapping("/{id}")
    public String deleteUser(@PathVariable Long id) {
        userService.deleteUser(id);
        return "success";
    }

    @GetMapping("/{id}")
    public User getUserById(@PathVariable Long id) {
        return userService.findUserById(id);
    }

    @GetMapping("/")
    public List<User> findAllUsers() {
        return userService.findAllUsers();
    }
}

이 클래스에서는 @RestController 주석을 사용하여 현재 클래스가 컨트롤러임을 나타냅니다. @RequestMapping 주석을 사용하여 액세스 경로를 지정합니다. 동시에 UserService는 @Autowired 어노테이션을 사용하여 주입됩니다. 즉, UserService에 정의된 메소드를 사용할 수 있습니다.

5. 테스트

이제 전체 프로젝트의 구성과 코딩이 완료되었습니다. 다음으로 Postman과 같은 도구를 사용하여 컨트롤러에 정의된 API를 테스트할 수 있습니다.

POST 요청을 사용하여 사용자 정보 저장, 요청 본문:

{
    "name": "张三",
    "age": 18
}

PUT 요청을 사용하여 사용자 정보 업데이트, 요청 본문:

{
    "id": 1,
    "name": "李四",
    "age": 20
}

DELETE 요청을 사용하여 사용자 정보 삭제, URL:

http://localhost:8080/user/1

사용 사용자 정보를 얻기 위한 GET 요청, URL은

http://localhost:8080/user/1

모든 사용자 정보를 얻으려면 GET 요청을 사용하세요. URL은

http://localhost:8080/user/

6. 요약

이 기사에서는 MyBatis를 사용하여 Spring에서 데이터 액세스 및 지속성을 달성하는 방법을 소개합니다. 부팅하고 간단한 예를 사용하여 전체 프로세스를 설명합니다. MyBatis는 Java 프로그램의 데이터베이스 작업을 보다 효율적이고 간결하게 만들 수 있습니다. Spring Boot에서 데이터베이스 작업을 구현해야 하는 경우 MyBatis 사용을 고려할 수 있습니다.

위 내용은 MyBatis를 사용하여 Spring Boot에서 데이터 액세스 및 지속성 구현의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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