@Insert("INSERT INTO Book (title, details, finished) VALUES (#{title}, #{details}, #{finished})")
@Options(useGeneratedKeys = true, keyProperty = "id")
void insert(Book todo);
@Select("SELECT id, title, details, finished FROM Book WHERE id = #{id}")
Book select(int id);
}
- 配置在XML文件中
@Mapper
public interface TodoMapper {
void insert(Todo todo);
Todo select(int id);
}
参考 https://qiita.com/5zm/items/e1faac61a1d00998fb1f
MyBatis实现的全过程
服务器是如何知道需要载入哪些Mapper
使用mybatis-spring的机能,需要使用@MapperScan标注,指定扫描的Package对象。
使用mybatis-spring-boot-starter,Spring Boot程序会自动扫描,主程序包里面所有带有@org.apache.ibatis.annotations.Mapper标注的接口。(mybatis 3.4追加的)
Mapper的使用方式
import org.apache.ibatis.annotations.Insert; import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Options; import org.apache.ibatis.annotations.Select; import com.example.mybatistrainmapper.domain.Book;
@Mapper public interface BookMapper {
}
@Mapper public interface TodoMapper { void insert(Todo todo); Todo select(int id); }
<?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">