美文网首页
SpringBoot与MyBatis的基础整合

SpringBoot与MyBatis的基础整合

作者: 拾月初六 | 来源:发表于2019-08-01 15:34 被阅读0次

1 新建springboot项目

1.1 根据IDE生成项目

        本次demo使用IDEA搭建,创建步骤如图

        选择新建项目---选择spring项目
image

使用默认项目名也有自己定义

image image image

2 pom文件添加必须依赖


2.1 依赖添加

如果项目是按照上图创建的,那么pom文件中的依赖就是完整的,如果是使用eclipse或者其他IDE开发的,可以根据下面文件检查是否有遗漏。

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>

    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>2.1.6.RELEASE</version>
        <relativePath/> <!-- lookup parent from repository -->
    </parent>

    <groupId>com.example</groupId>
    <artifactId>demo</artifactId>
    <version>0.0.1-SNAPSHOT</version>
    <name>demo</name>
    <description>Demo project for Spring Boot</description>

    <properties>
        <java.version>11</java.version>
    </properties>

    <dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>
        <dependency>
            <groupId>org.mybatis.spring.boot</groupId>
            <artifactId>mybatis-spring-boot-starter</artifactId>
            <version>2.1.0</version>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
        </dependency>
        <!-- 第三方依赖开始 -->
        <!--mysql-->
        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <scope>runtime</scope>
        </dependency>
        <!--jdbc-->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-jdbc</artifactId>
        </dependency>
        <!-- 第三方依赖结束 -->
    </dependencies>

    <build>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
            </plugin>
        </plugins>
    </build>

</project>

3 配置mybatis参数
3.1 基本mybatis参数
这里我们设置的是读取dev的配置文件


server:
port: 8080  # 服务端口号

spring:
datasource:
  username: root   # 数据库账号
  password: 123456 # 数据库密码
  url: jdbc:mysql://localhost:3306/test?useUnicode=true&characterEncoding=utf-8&useSSL=true&serverTimezone=UTC # 数据库连接
  driver-class-name: com.mysql.jdbc.Driver # 数据库驱动

mybatis:
mapper-locations: classpath:mapping/*Mapper.xml #读取mapper文件的地址
type-aliases-package: com.example.demo.entity   #通配符

#showSql
logging:
level:
  com:
    example:
      demo:
        mapper : debug


4 构建业务代码
4.1 搭建基础架构
这里使用了基础的三层架构。
Controller层

package com.example.demo.controller;

import com.example.demo.service.UserService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

@RestController
@RequestMapping("/testBoot")
public class UserController {

  @Autowired
  private UserService userService;

  @RequestMapping("getUser/{id}")
  public String GetUser(@PathVariable String id){
      return userService.Sel(id).toString();
  }

}

service层分成了接口和实现类

package com.example.demo.service;

import com.example.demo.entity.User;

public interface UserService {

    User Sel(String id);
}

package com.example.demo.service.impl;

import com.example.demo.entity.User;
import com.example.demo.mapper.UserMapper;
import com.example.demo.service.UserService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

@Service
public class UserServiceImpl implements UserService {

    @Autowired
    UserMapper userMapper;

    @Override
    public User Sel(String id) {
        return userMapper.Sel(id);
    }
}

实体类

package com.example.demo.entity;

public class User {

    private String id;
    private String code;
    private String name;

    public String getId() {
        return id;
    }

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

    public String getCode() {
        return code;
    }

    public void setCode(String code) {
        this.code = code;
    }

    public String getName() {
        return name;
    }

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

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

mapper文件

package com.example.demo.mapper;

import com.example.demo.entity.User;
import org.apache.ibatis.annotations.Mapper;
import org.springframework.stereotype.Repository;

@Mapper
public interface UserMapper {

    User Sel(String id);
}

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.example.demo.mapper.UserMapper">

    <select id="Sel" resultType="User">
        select id from user where id = #{id}
    </select>

</mapper>

5 测试
5.1 测试
启动主程序

package com.example.demo;

import org.mybatis.spring.annotation.MapperScan;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
@MapperScan("com.example.demo.mapper")
@SpringBootApplication
public class DemoApplication {

    public static void main(String[] args) {
        SpringApplication.run(DemoApplication.class, args);
    }

}

注意上面要扫描mapper文件,不然会启动报错
启动成功后,访问http://localhost:8080/testBoot/getUser/1

可以看到收到了返回结果


是不是很简单。

相关文章

网友评论

      本文标题:SpringBoot与MyBatis的基础整合

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