public class User {
private Long id;
private String username;
private String email;
// Getters & Setters
}
4๏ธโฃ Mapper ์ธํฐํ์ด์ค ์์ฑ
@Mapper
public interface UserMapper {
@Select("SELECT * FROM users WHERE id = #{id}")
User findById(Long id);
@Insert("INSERT INTO users(username, email) VALUES(#{username}, #{email})")
@Options(useGeneratedKeys = true, keyProperty = "id")
void insertUser(User user);
}
5๏ธโฃ XML Mapper ์ฌ์ฉ ์์ (์ ํ ์ฌํญ)
๐ XML ํ์ผ์ ํ์ฉํ๋ ๊ฒฝ์ฐ (resources/mapper/UserMapper.xml)
<mapper namespace="com.example.mapper.UserMapper">
<select id="findById" resultType="com.example.domain.User">
SELECT * FROM users WHERE id = #{id}
</select>
<insert id="insertUser" parameterType="com.example.domain.User" useGeneratedKeys="true" keyProperty="id">
INSERT INTO users(username, email) VALUES(#{username}, #{email})
</insert>
</mapper>
6๏ธโฃ ์๋น์ค ๊ณ์ธต์์ Mapper ํธ์ถ
@Service
public class UserService {
private final UserMapper userMapper;
public UserService(UserMapper userMapper) {
this.userMapper = userMapper;
}
public User getUserById(Long id) {
return userMapper.findById(id);
}
public void createUser(User user) {
userMapper.insertUser(user);
}
}