package com.example.student.vo;
public class Student {
private int id; // 학번
private String name; // 이름
private String phone; // 전화번호
// 생성자, Getter/Setter
}
package com.example.student.mapper;
import com.example.student.vo.Student;
import org.apache.ibatis.annotations.Mapper;
import java.util.List;
@Mapper
public interface StudentMapper {
List<Student> selectAllStudents();
Student selectStudentById(int id);
void insertStudent(Student student);
void updateStudent(Student student);
void deleteStudent(int id);
}
package com.example.student.service;
import com.example.student.mapper.StudentMapper;
import com.example.student.vo.Student;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.List;
@Service
public class StudentService {
@Autowired
private StudentMapper studentMapper;
public List<Student> getAllStudents() {
return studentMapper.selectAllStudents();
}
public Student getStudentById(int id) {
return studentMapper.selectStudentById(id);
}
public void createStudent(Student student) {
studentMapper.insertStudent(student);
}
public void updateStudent(Student student) {
studentMapper.updateStudent(student);
}
public void deleteStudent(int id) {
studentMapper.deleteStudent(id);
}
}
package com.example.student.controller;
import com.example.student.service.StudentService;
import com.example.student.vo.Student;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import java.util.List;
@RestController
@RequestMapping("/students")
public class StudentController {
@Autowired
private StudentService studentService;
@GetMapping
public List<Student> getAllStudents() {
return studentService.getAllStudents();
}
@GetMapping("/{id}")
public Student getStudentById(@PathVariable int id) {
return studentService.getStudentById(id);
}
@PostMapping
public void createStudent(@RequestBody Student student) {
studentService.createStudent(student);
}
@PutMapping("/{id}")
public void updateStudent(@PathVariable int id, @RequestBody Student student) {
student.setId(id);
studentService.updateStudent(student);
}
@DeleteMapping("/{id}")
public void deleteStudent(@PathVariable int id) {
studentService.deleteStudent(id);
}
}
spring.datasource.url=jdbc:h2:mem:testdb
spring.datasource.driver-class-name=org.h2.Driver
spring.datasource.username=sa
spring.datasource.password=
spring.jpa.hibernate.ddl-auto=create
spring.h2.console.enabled=true
mybatis.configuration.map-underscore-to-camel-case=true
spring.datasource.url=jdbc:h2:mem:testdb
spring.datasource.driver-class-name=org.h2.Driver
spring.datasource.username=sa
spring.datasource.password=
spring.jpa.hibernate.ddl-auto=create
spring.h2.console.enabled=true
CREATE TABLE student (
id INT PRIMARY KEY,
name VARCHAR(255),
phone VARCHAR(20)
);
INSERT INTO student (id, name, phone) VALUES
(1, '홍길동', '010-1234-5678'),
(2, '김철수', '010-9876-5432'),
(3, '박영희', '010-1111-2222');
SELECT * FROM student;
위 단계를 따르면 H2 데이터베이스를 생성하고 데이터를 입력할 수 있습니다.
StudentMapper.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.student.mapper.StudentMapper">
<select id="selectAllStudents" resultType="com.example.student.vo.Student">
SELECT id, name, phone FROM student
</select>
<select id="selectStudentById" parameterType="int" resultType="com.example.student.vo.Student">
SELECT id, name, phone FROM student WHERE id = #{id}
</select>
<insert id="insertStudent" parameterType="com.example.student.vo.Student">
INSERT INTO student (id, name, phone) VALUES (#{id}, #{name}, #{phone})
</insert>
<update id="updateStudent" parameterType="com.example.student.vo.Student">
UPDATE student SET name = #{name}, phone = #{phone} WHERE id = #{id}
</update>
<delete id="deleteStudent" parameterType="int">
DELETE FROM student WHERE id = #{id}
</delete>
</mapper>
설명:
중요 사항:
사용 방법:
이제 StudentMapper 인터페이스를 통해 데이터베이스 작업을 수행할 수 있습니다. 예를 들어, studentMapper.selectAllStudents()를 호출하면 student 테이블의 모든 데이터를 조회하여 List<Student> 객체로 반환합니다.
Spring MVC Controller, Service, Mapper (MyBatis) 예제 (1) | 2025.02.06 |
---|---|
ObjectMapper 매퍼 = new ObjectMapper() (0) | 2025.01.24 |
패키지에 impl을 붙이는 이유 (1) | 2025.01.24 |
REST 방식에서 쿼리스트링 (0) | 2025.01.23 |
스프링에서 모델1, 모델2 (1) | 2025.01.23 |