SpringBoot项目中集成MyBatis框架

mybatis官方学习文档
mybatis-spring

一、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为例

SpringBoot项目中集成MyBatis框架_第1张图片

三、通过mybatis访问数据库

报错:java.sql.SQLException: The server time zone value ‘�й���׼ʱ��’ is unrecognized or represents more than one time zone.

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所指定的对象对应的属性。

SpringBoot项目中集成MyBatis框架_第2张图片

也可以在application.properties中指定POJO扫描包来让mybatis自动扫描到自定义POJO,这样在xml中我们就可以直接写

mybatis.type-aliases-package=com.spring.demo.entity

SpringBoot项目中集成MyBatis框架_第3张图片

2、定义业务接口类(service)
/**
 * @Description: 用户管理接口类
 * @Author: Super
 * @CreateDate: 2020/6/24 18:01
 * @Version: 1.0
 */
public interface UserManageService {
  /**
   * 功能描述: 查询所有用户
   * 〈〉
   * @Return  java.util.List
   */
    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;
    }
}

四、启动应用访问url

在这里插入图片描述

你可能感兴趣的:(Spring,Boot,MyBatis)