引入依赖
<dependency>
<groupId>org.mybatis.spring.boot</groupId>
<artifactId>mybatis-spring-boot-starter</artifactId>
<version>2.1.3</version>
</dependency>
创建实体类
public class User {
private Integer id;
private String username;
private String password;
public User(Integer id, String username, String password) {
this.id = id;
this.username = username;
this.password = password;
}
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
}
添加映射
@Mapper
public interface UserMapper {
@Select("select * from user where id=#{id}")
public User getUserById(Integer id);
@Insert("insert into user(name,number,password) values(#{name},#{number},#{password})")
public int insertUser(User user);
}
测试
@Autowired(required = false)
UserMapper userMapper;
@Test
void contextLoads() {
User user = userMapper.getUserById(10);
System.out.println(user.getUsername());
System.out.println(user.getPassword());
}
使用配置类开启驼峰命名法
import org.mybatis.spring.boot.autoconfigure.ConfigurationCustomizer;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
@Configuration
public class MybatisConfiguration {
@Bean
public ConfigurationCustomizer configurationCustomizer(){
return new ConfigurationCustomizer() {
@Override
public void customize(org.apache.ibatis.session.Configuration configuration) {
configuration.setMapUnderscoreToCamelCase(true);
}
};
}
}
也可使用lambda表达式的方式,更简洁
import org.mybatis.spring.boot.autoconfigure.ConfigurationCustomizer;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
@Configuration
public class MybatisConfiguration {
@Bean
public ConfigurationCustomizer configurationCustomizer(){
return configuration -> configuration.setMapUnderscoreToCamelCase(true);
}
}
使用包扫描
可以在启动类上添加@MapperScan
注解,批量扫描给出的 value 路径下的 mapper 接口。
例如:
@MapperScan(value = "com.example.demo.mapper")//扫描项目mapper路径下的所有mapper接口并建立映射
@SpringBootApplication
public class DemoApplication {
public static void main(String[] args) {
SpringApplication.run(DemoApplication.class, args);
}
}
不管是使用配置文件或者是注解的方式都应该将 mapper 接口标注上@Mapper
或者@MapperScan
将接口扫描装配到容器中。