一、引入依赖
<!--springboot集成mybatis begin-->
<dependency>
<groupId>org.mybatis.spring.boot</groupId>
<artifactId>mybatis-spring-boot-starter</artifactId>
<version>1.1.1</version>
</dependency>
<!--springboot集成mybatis end-->
二、正常完成domain、controller、service、impl、mapper以及xml
package com.example._04mybatis.domain;
import lombok.Getter;
import lombok.Setter;
/**
* @Package: com.example._04mybatis.domain
* @ClassName: Person
* @Description: <p>Description: </p>
* @author: zq
* @since: 2020/5/2 22:00
* @version: 1.0
* @Copyright: 2020 zq. All rights reserved.
*/
@Getter
@Setter
public class Person {
/**
* id
*/
private int id;
/**
* name
*/
private String name;
/**
* age
*/
private int age;
}
package com.example._04mybatis.controller;
import com.example._04mybatis.domain.Person;
import com.example._04mybatis.service.IPersonService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;
import java.util.List;
/**
* @Package: com.example._04mybatis.controller
* @ClassName: PersonController
* @Description: <p>Description: </p>
* @author: zq
* @since: 2020/5/2 22:05
* @version: 1.0
* @Copyright: 2020 zq. All rights reserved.
*/
@Controller
public class PersonController {
@Autowired
IPersonService service;
@RequestMapping("/getAllPerson")
@ResponseBody
public List<Person> getAllPerson() {
return service.findAll();
}
}
package com.example._04mybatis.service;
import com.example._04mybatis.domain.Person;
import java.util.List;
/**
* @Package: com.example._04mybatis.service
* @ClassName: IPersonService
* @Description: <p>Description: </p>
* @author: zq
* @since: 2020/5/2 22:01
* @version: 1.0
* @Copyright: 2020 zq. All rights reserved.
*/
public interface IPersonService {
List<Person> findAll();
}
package com.example._04mybatis.service.impl;
import com.example._04mybatis.domain.Person;
import com.example._04mybatis.mapper.PersonMapper;
import com.example._04mybatis.service.IPersonService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.List;
/**
* @Package: com.example._04mybatis.service.impl
* @ClassName: PersonServiceImpl
* @Description: <p>Description: </p>
* @author: zq
* @since: 2020/5/2 22:02
* @version: 1.0
* @Copyright: 2020 zq. All rights reserved.
*/
@Service
public class PersonServiceImpl implements IPersonService {
@Autowired
PersonMapper personMapper;
@Override
public List<Person> findAll() {
return personMapper.findAll();
}
}
package com.example._04mybatis.mapper;
import com.example._04mybatis.domain.Person;
import java.util.List;
/**
* @Package: com.example._04mybatis.mapper
* @ClassName: PersonMapper
* @Description: <p>Description: </p>
* @author: zq
* @since: 2020/5/2 22:03
* @version: 1.0
* @Copyright: 2020 zq. All rights reserved.
*/
public interface PersonMapper {
List<Person> findAll();
}
<?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._04mybatis.mapper.PersonMapper">
<select id="findAll" resultType="com.example._04mybatis.domain.Person">
select * from person
</select>
</mapper>
三、在application.properties中设置mybatis配置
#映射文件位置
mybatis.mapper-locations=classpath:mybatis/*.xml
#配置文件位置
mybatis.config-location=classpath:mybatis-config.xml
#别名包位置
mybatis.type-aliases-package=com.example._04mybatis.domain
#输出sql执行语句
logging.level.com.example._04mybatis=debug
四、mybatis-config.xml
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-config.dtd">
<configuration>
<settings>
<setting name="lazyLoadingEnabled" value="true"/>
<setting name="aggressiveLazyLoading" value="true"/>
<setting name="lazyLoadTriggerMethods" value="equals,clone,hashcode"/>
</settings>
<plugins>
<plugin interceptor="com.example._04mybatis.intercepter.SqlLogInterceptor"></plugin>
</plugins>
</configuration>
五、如果mapper对应的xml不在resources目录的话默认是不会被加载的,需要设置如下:
<build>
<!--使得src下的资源也可以被加载到class目录 begin-->
<resources>
<resource>
<directory>src/main/java</directory>
<includes>
<include>**/*.xml</include>
</includes>
</resource>
</resources>
<!--使得src下的资源也可以被加载到class目录 end-->
</build>
六、启动类
package com.example._04mybatis;
import org.mybatis.spring.annotation.MapperScan;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
/**
* @Package: com.example._04mybatis
* @ClassName: AppConfig
* @Description: <p>Description: </p>
* @author: zq
* @since: 2020/5/2 22:13
* @version: 1.0
* @Copyright: 2020 zq. All rights reserved.
*/
@SpringBootApplication
@MapperScan("com.example.*.mapper")
public class AppConfig {
public static void main(String[] args) {
SpringApplication.run(AppConfig.class, args);
}
}