在springboot中通过配置的方式使用mybatis

2,159 阅读1分钟
1. 在pom.xml中添加依赖,如下所示:

    <dependency>
      <groupId>mysql</groupId>
      <artifactId>mysql-connector-java</artifactId>
    </dependency>
    
    <dependency>
      <groupId>org.mybatis.spring.boot</groupId>
      <artifactId>mybatis-spring-boot-starter</artifactId>
      <version>1.2.0</version>
    </dependency>

 2. 在application.yml中配置数据库和配置文件存放的位置:

mybatis:
  configuration:
    log-impl: org.apache.ibatis.logging.stdout.StdOutImpl
  type-aliases-package: com.lockedx.entity
  mapper-locations: classpath:mappers/*.xml
spring:
  datasource:
    driver-class-name: com.mysql.jdbc.Driver
    url: jdbc:mysql://127.0.0.1:3306/test?useSSL=false
    username: root
    password: 123456

3. 创建实体类,如下所示:

package com.lockedx.entity;



/**
 * Created by Administrator on 2017/6/6.
 */
public class User {
    private int id;
    private String name;
    private int age;

    public int getId() {
        return id;
    }

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

    public String getName() {
        return name;
    }

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

    public int getAge() {
        return age;
    }

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

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

4. 在resources的文件夹中新建mappers文件夹,用来映射实体类,如UserMapper.xml(命名一定要为“实体类+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.lockedx.dao.UserMapper">
    <select id="getById" resultType="User">
        select * from User where id = #{id}
    </select>
</mapper>

此处注意 : namespace="com.lockedx.dao.UserMapper"一定要为UserMapper所在的位置。 id也要和Usermapper中的方法名一样。

5. 编写Dao层代码UserMapper,代码如下所示:

package com.lockedx.dao;

import com.lockedx.entity.User;
import org.apache.ibatis.annotations.Mapper;
import org.springframework.stereotype.Component;


@Mapper
@Component
public interface UserMapper {
  public User getById(Integer id);
}

6. 编写控制层代码,UserController,代码如下所示:

package com.lockedx.controller;

import com.lockedx.dao.UserMapper;
import com.lockedx.entity.User;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;

/**
 * Created by Administrator on 2017/6/8.
 */
@RestController
public class Controller {

    @Autowired
    UserMapper userDao;
    @GetMapping(value = "/users/2")
    public User getById(){
        return userDao.getById(2);
    }
}

7. 最后进行测试,如下图所示: