美文网首页
SpringBoot整合Mybatis

SpringBoot整合Mybatis

作者: yangkunn | 来源:发表于2019-02-28 22:13 被阅读0次
首先在application.properties文件中配置数据源
#配置数据源
spring.datasource.url=jdbc:mysql://127.0.0.1:3306/monitor?useUnicode=true&characterEncoding=utf8&serverTimezone=UTC
spring.datasource.username=root
spring.datasource.password=123456
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
#配置实体类所在包,用于使用类别名
mybatis.type-aliases-package=com.tzc.yk.MonitorService.pojo
#配置mybatis的xml文件路径
mybatis.mapper-locations=classpath:mybatis/mapper/*.xml
#配置日志等级,用于打印sql语句到控制台
logging.level.com.tzc.yk.MonitorService.mapper = debug
在resources目录下新建mybaits\mapper目录,
0.png
并在该目录下新建LoginMapper.xml文件
<?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.tzc.yk.MonitorService.mapper.LoginMapper">

    <select id="test" resultType="User">
        select * from user;
    </select>

</mapper>
mapper标签的namespace属性为mybatis接口文件路径,一般来说一个xml文件与一个接口对应,在xml文件中写了一个查询语句,查询所有的用户信息,mybatis将查询到的数据自动包装成User对象。
接下来看看与LoginMapper.xml对应的接口文件
package com.tzc.yk.MonitorService.mapper;

import com.tzc.yk.MonitorService.pojo.User;
import org.springframework.stereotype.Service;

import java.util.List;

@Service
public interface LoginMapper {
    List<User> test() throws Exception;
}

首先该接口使用了@Service注解,表示该接口可以被Spring自动注入,在接口中声明了一个方法,该方法的方法名与其对应的xml文件中的select标签的id需一致,也就是说xml文件的标签与接口中的方法一一对应。该方法返回值是一个List是因为select语句查询到的结果可能不止一个。还有就是xml中的resultType属性的类型需与List的泛型类型一致。
至此mybatis的配置已经好了,只需调用接口的方法即可访问数据库的数据了;按照常规的套路,先写service层代码,首先定义service接口
package com.tzc.yk.MonitorService.service;

import com.tzc.yk.MonitorService.pojo.User;

import java.util.List;

public interface LoginService {
    List<User> test() throws Exception;
}

再实现该接口,再service代码中可以看到有一个LoginMapper的成员对象,该对象使用了@Autowired注解,Spring会为其注入实例,然后通过该对象就可以操作数据库了,本例中调用了test方法,返回所有的用户信息。
package com.tzc.yk.MonitorService.serviceImpl;

import com.tzc.yk.MonitorService.mapper.LoginMapper;
import com.tzc.yk.MonitorService.pojo.User;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import java.util.List;

@Service
public class LoginService implements com.tzc.yk.MonitorService.service.LoginService {

    @Autowired
    LoginMapper loginMapper;

    @Override
    public List<User> test() throws Exception {
        return loginMapper.test();
    }
}

最后开始编写控制器方法,在控制器类中同样有 @Autowired注解修饰的成员变量loginService,然后看控制器的test方法,该方法使用 @RequestMapping("/test"),表示访问路径为/test,使用@ResponseBody,表示将数据已JSON格式返回,在方法体中调用了loginService.test()方法,查询所用的用户信息。
package com.tzc.yk.MonitorService.controller;

import com.tzc.yk.MonitorService.pojo.User;
import com.tzc.yk.MonitorService.service.LoginService;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.*;

import java.util.HashMap;
import java.util.List;
import java.util.Map;

@Controller
@CrossOrigin
public class LoginController {

    Logger logger = LoggerFactory.getLogger(LoginController.class);

    @Autowired
    LoginService loginService;

    @RequestMapping("/test")
    @ResponseBody
    public List<User> test(){
        List<User> ls = null;
        try {
            ls = loginService.test();
        } catch (Exception e) {
            e.printStackTrace();
        }
        return ls;
    }

}

接下来启动SpringBoot项目,并打开浏览器,输入http://127.0.0.1:8080/test ,查看效果。
1.png

相关文章

网友评论

      本文标题:SpringBoot整合Mybatis

      本文链接:https://www.haomeiwen.com/subject/shftuqtx.html