一、pom.xml中引入mybatis依赖
<!-- ORM框架 MyBatis -->
<dependency>
<groupId>org.mybatis.spring.boot</groupId>
<artifactId>mybatis-spring-boot-starter</artifactId>
<version>2.1.3</version>
</dependency>
二、配置数据库信息
在application.properties中配置使用的数据库信息,这里以mysql为例
三、通过mybatis访问数据库
1、定义Mapper接口类(Dao)和操作sql
方式一、使用全注解
类注解:@Mapper 、sql注解(@Select、@Insert、@Delete、@Update)
@Mapper
public interface UserInfoMapper {
@Select("select * from userinfo")
List<User> queryAllUser();
}
方式二、在mapper xml配置文件中配置sql
1、首先需要在application.pro中指定xml路径,告诉应用该去哪里解析对应的xml
mybatis.mapperLocations=classpath:mappers/*.xml
2、配置*.xml文件
注意:如果定义的Java Bean中的属性与表字段一模一样,则无需再定义resultMap来映射关系 当返回结果为java
Bean时,查出结果后mybatis会将Map里面的键值对取出赋给resultType所指定的对象对应的属性。
也可以在application.properties中指定POJO扫描包来让mybatis自动扫描到自定义POJO,这样在xml中我们就可以直接写
mybatis.type-aliases-package=com.spring.demo.entity
2、定义业务接口类(service)
/**
* @Description: 用户管理接口类
* @Author: Super
* @CreateDate: 2020/6/24 18:01
* @Version: 1.0
*/
public interface UserManageService {
/**
* 功能描述: 查询所有用户
* 〈〉
* @Return java.util.List<com.spring.demo.entity.User>
*/
List<User> queryAllUser() throws Exception;
}
3、定义业务实现类(serviceImpl)
类注解:@Service
/**
* @Description: 用户管理实现类
* @Author: Super
* @CreateDate: 2020/6/24 18:09
* @Version: 1.0
*/
@Service
public class UserManageServiceImpl implements UserManageService{
@Autowired
private UserInfoMapper userInfoMapper;
@Override
public List<User> queryAllUser() throws Exception{
List<User> users;
try {
users = userInfoMapper.queryAllUser();
} catch (Exception e) {
throw e;
}
return Objects.isNull(users) ? new ArrayList<>() : users;
}
}
4.定义启动类和请求路径
定义一个结果封装类来封装返回给前台的结果(使用lombok @Data注解来自动生成get/set)
@Data
public class RestResult {
private Object Data;
private int status;
private String errorMsg;
}
@SpringBootApplication
@RestController
public class DemoApplication {
@Autowired
private UserManageService userManageService;
public static void main(String[] args) {
SpringApplication.run(DemoApplication.class, args);
}
@GetMapping("/alluser")
public RestResult queryAllUser(){
RestResult restResult = new RestResult();
try {
List<User> users = userManageService.queryAllUser();
restResult.setData(users);
restResult.setStatus(0);
} catch (Exception e) {
restResult.setStatus(-1);
restResult.setErrorMsg("查询用户信息失败");
}
return restResult;
}
}