前言
随着spring boot2.0的发布。项目组的API接口已经考虑向spring boot转型。底层接口我们一直用的mybatis,所以这篇文章我特意练习了下在spring boot种集成mybatis。
一、准备工作
1、pom.xml
1 <dependencies> 2 <dependency> 3 <groupId>org.springframework.boot</groupId> 4 <artifactId>spring-boot</artifactId> 5 <version>2.0.0.RELEASE</version> 6 </dependency> 7 <dependency> 8 <groupId>org.springframework.boot</groupId> 9 <artifactId>spring-boot-starter-web</artifactId> 10 <version>2.0.0.RELEASE</version> 11 </dependency> 12 <dependency> 13 <groupId>com.microsoft.sqlserver</groupId> 14 <artifactId>sqljdbc4</artifactId> 15 <version>4.0</version> 16 </dependency> 17 <dependency> 18 <groupId>org.mybatis.spring.boot</groupId> 19 <artifactId>mybatis-spring-boot-starter</artifactId> 20 <version>1.3.2</version> 21 </dependency> 22 <dependency> 23 <groupId>com.alibaba</groupId> 24 <artifactId>druid</artifactId> 25 <version>1.1.9</version> 26 </dependency> 27 <dependency> 28 <groupId>org.springframework.boot</groupId> 29 <artifactId>spring-boot-starter-test</artifactId> 30 <version>2.0.0.RELEASE</version> 31 <scope>test</scope> 32 </dependency> 33 </dependencies>
2、项目结构
配置文件依然放在resources目录下,spring boot中支持properties、也支持yml的方式。

3、使用注解的方式编写UserMapper
public interface UserDao {
@Select("select * from tb_user")
List<User> getAllUsers();
@Select("select * from tb_user where id=#{id}")
User getById(int id);
@Insert("insert into tb_user(name,address) values(#{name},#{address})")
void insert(User user);
@Update("update tb_user set name=#{name},address=#{address} where id=#{id}")
void update(User user);
@Delete("delete from tb_user where id=#{id}")
void delete(int id);
}
启动类 Application.java。 主要是MapperScan注解,配置映射包目录com.che168.dao
@SpringBootApplication
@MapperScan("com.che168.dao")
public class Application {
public static void main(String[] args){
SpringApplication.run(Application.class,args);
}
}
单元测试
@RunWith(SpringRunner.class)
@SpringBootTest
public class UserDaoTest {
@Autowired
UserDao userDao;
@Test
public void getAllUsers(){
List<User> allUsers=userDao.getAllUsers();
System.out.println(allUsers.size());
}
@Test
public void getById(){
int id=1;
User model=userDao.getById(id);
System.out.println("name:"+model.getName()+",address:"+model.getAddress());
}
@Test
public void insert(){
User user=new User();
user.setName("云龙");
user.setAddress("山西太原");
userDao.insert(user);
}
@Test
public void update(){
User user=new User();
user.setId(4);
user.setName("云龙");
user.setAddress("山西运城");
userDao.update(user);
}
@Test
public void delete(){
userDao.delete(4);
}
}
二、使用配置文件的方式
配置文件的方式和我们之前在SpringMVC中集成的方式大致相同,把xml文件单独放在mapper目录下,把sql相关操作全部放在xml中, 接口用来编写方法签名,然后配置映射,在spring boot中不同的地方就是把mapper-config.xml和实体类映射文件需要配置在application.properties中,如下配置,在此就不再赘述了。
mybatis.config-locations=classpath:mybatis/mybatis-config.xml
mybatis.mapper-locations=classpath:mybatis/mapper/*.xml