miketwais

work up

springboot整合mybatis全过程实例

以往整合SSM需要多次配置,有点复杂,既然已经有了springboot,那为什么不直接用springboot呢?

我们选用intelliJ IDEA,创建springboot的方法请参照:IDEA下创建Spring Boot项目

在此基础上我们只需要引入mybatis即可:

1.在pom.xml中添加相关依赖:

        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <scope>runtime</scope>
        </dependency>

        <dependency>
            <groupId>org.mybatis.spring.boot</groupId>
            <artifactId>mybatis-spring-boot-starter</artifactId>
            <version>1.1.1</version>
        </dependency>

2.本地创建一个demo数据库,我们建一个test数据库和student表:

3.创建相应实体,控制器和mapper文件:

其中Student.java文件:(我们重写toString()方法,方便后面演示)

package com.example.demo.models;

/**
 * Created with IntelliJ IDEA.
 * User: Mason
 * Date: 2018/6/14
 * Time: 14:29
 */
public class Student {
    private int id;
    private String name;

    public int getId() {
        return id;
    }

    private int age;
    private String subject;

    public void setId(int id) {
        this.id = id;
    }

    public String getName() {

        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public void setAge(int age) {
        this.age = age;
    }

    public void setSubject(String subject) {
        this.subject = subject;
    }

    public int getAge() {
        return age;
    }

    public String getSubject() {
        return subject;
    }

    @Override
    public String toString(){
        return "Student{" +
                "id=" + id +
                ", name='" + name + '\'' +
                ", age=" + age +
                ", subject=" + subject +
                '}';
    }
}
View Code

StudentMapper.java文件:是一个接口类,具体的SQL语句我们写在StudentMapper.xml文件中

package com.example.demo.dao;
import com.example.demo.models.Student;
import org.apache.ibatis.annotations.Mapper;
import org.springframework.stereotype.Repository;
/**
 * Created with IntelliJ IDEA.
 * User: Mason
 * Date: 2018/6/14
 * Time: 14:32
 */
@Mapper
@Repository
public interface StudentMapper {
    Student getStuByName(String name);
}
View Code

StudentController.java文件:浏览器访问入口,控制器文件,在里面引用接口中的方法

package com.example.demo.controller;

import com.example.demo.dao.StudentMapper;
import com.example.demo.models.Student;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

/**
 * Created with IntelliJ IDEA.
 * User: Mason
 * Date: 2018/6/14
 * Time: 14:41
 */
@RestController
public class StudentController {
    @Autowired
    StudentMapper studentMapper;
    @RequestMapping(value="/qs")
    public String qs(){
        Student student = studentMapper.getStuByName("mson");
        return student.toString();
    }
}
View Code

 

 4.添加StudentMapper.xml文件,我们将文件放在resource/mapper中

具体内容如下:

<?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.demo.dao.StudentMapper" >
    <select id="getStuByName"  resultType="Student">
        SELECT * FROM students WHERE name = #{name}
    </select>
</mapper>
View Code

5,在application.properties中添加数据库配置和mapper扫描配置

spring.datasource.url=jdbc:mysql://localhost:3306/test?useUnicode=true&characterEncoding=UTF-8
spring.datasource.username=test
spring.datasource.password=test
spring.datasource.driver-class-name=com.mysql.jdbc.Driver
spring.jpa.database = mysql

#Mybatis扫描路径
mybatis.mapper-locations=classpath*:mapper/*.xml
#对应我们的实体类所在的包
mybatis.type-aliases-package=com.example.demo.models

6,到此为止已经完成springboot整合mybatis,启动程序测试一下:

 

 OK,成功。

基础知识,记录以便查看。

posted @ 2018-06-14 17:09  MasonZhang  阅读(728)  评论(0)    收藏  举报