SpringBoot整合Mybatis(详解,一看就会)

1. 创建一个SpringBoot工程(也可以使用maven工程 然后导入SpringBoot相对应的包,之后创建一个启动类,我这边演示的直接是用SpringBoot工程)

Cloud Native App Initializer (aliyun.com)

如果有java8的直接跳过这一步,没有的话手动创建,然后导入到项目中

创建完毕之后如下

2.配置相应的依赖(包含Mybatis依赖,MySQL依赖,数据库连接池  我这边使用的是德鲁伊)

  <!--Mybatis依赖-->
        <dependency>
            <groupId>org.mybatis.spring.boot</groupId>
            <artifactId>mybatis-spring-boot-starter</artifactId>
            <version>2.1.3</version>
        </dependency>
        <!--mysql依赖-->
        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <version>8.0.25</version>
        </dependency>
        <!--数据库连接池 Druid 德鲁伊-->
        <dependency>
            <groupId>com.alibaba</groupId>
            <artifactId>druid-spring-boot-starter</artifactId>
            <version>1.2.20</version>
        </dependency>

3. 导入依赖之后 将resource目录下的application.properties 修改为application.yml(如果没有的话就自己手动创建),根据个人习惯也可以是一application.properties,我这里演示的是yml(注意 :有些springboot工程里面没有resource目录,则需要自创建,resource和java目录是同级目录)

在resource创建好之后,我们在resource目录下创建application.yml,创建完之后写数据库配置文件,根据自己的 数据库和数据库账号和密码进行更改,改成自己的,以及端口,我这边端口是8081,根据自己可以修改端口,默认是 8080

yml文件给你们写好了,你们直接复制过去修改就可以了,我们可以用mybatisPlus插件,这样会有利于我们进行测试,代码如下所示

spring:
  # 数据库配置
  datasource:
    type: com.alibaba.druid.pool.DruidDataSource
    druid:
      driver-class-name: com.mysql.cj.jdbc.Driver
      url: jdbc:mysql://localhost:3306/user?useSSL=true&useUnicode=true&characterEncoding=utf-8&serverTimezone=Asia/Shanghai
      username: root
      password: 1234
mybatis-plus:
  configuration:
    log-impl: org.apache.ibatis.logging.stdout.StdOutImpl

# 端口配置
server:
  port: 8081

5. 现在我们来测试一下,启动springboot工程,找到启动类,启动没有报错的话,则我们继续下一步,如果有报错的话,有可能是依赖问题,也有可能是数据库的问题。根据报错信息进行修改。

4. 在数据库中创建想要是数据库以及表,我这个以t_user为例

        

创建完毕之后,在表中添加数据,进行测试

 

6. 创建三层架构分别为 控制层(controller)、业务层(service)、数据访问层(mapper)、实体(pojo,如下图所示进行创建

7. 首先,在pojo包下面创建一个实体,我们这边以User为例,这个我就不带着大家写了,你们可以直接复制我的,改成自己的 字段名

package com.mhr.pojo;



import com.sun.org.apache.xpath.internal.operations.Or;

import java.util.Date;
import java.util.List;


public class User {

    private int id;
    private String username;
    private String password;
    private String birthday;


    public User(int id, String username, String password, String birthday) {
        this.id = id;
        this.username = username;
        this.password = password;
        this.birthday = birthday;

    }

    public User() {
    }

    @Override
    public String toString() {
        return "User{" +
                "id=" + id +
                ", username='" + username + '\'' +
                ", password='" + password + '\'' +
                ", birthday='" + birthday + '\'' +
                '}';
    }


    public int getId() {
        return id;
    }

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

    public String getUsername() {
        return username;
    }

    public void setUsername(String username) {
        this.username = username;
    }

    public String getPassword() {
        return password;
    }

    public void setPassword(String password) {
        this.password = password;
    }

    public String getBirthday() {
        return birthday;
    }

    public void setBirthday(String birthday) {
        this.birthday = birthday;
    }

}

8. 然后在mapper下创建一个接口 我们这边以UserMapper, 继承BaseMapper<实体类>,然后在接口中写方法,以查询表中所有信息和根据id查询单个信息为例

  一般使用xml进行,我们这边可以简单一点,可以直接使用注解来写SQL语句

package com.mhr.mapper;


import com.mhr.pojo.User;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Select;

import java.util.List;

@Mapper
public interface UserMapper {

    //查询所有数据
    @Select("select * from t_user")
    List<User> findAll();

    //根据id查询单个数据
    @Select("select * from t_user where id = #{id}")
    User findById(int id);





}

9. 接下来在service包下创建UserService

package com.mhr.service;

import com.mhr.mapper.UserMapper;
import com.mhr.pojo.User;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import java.util.List;

@Service
public class UserService {

    @Autowired
    private UserMapper userMapper;

    //查询所有信息
    public List<User> findAll(){
      return userMapper.findAll();
    }

    //根据id查询信息
    public User findById(int id){
        return userMapper.findById(id);
    }


}

注:本类中不要忘记写@service,以及依赖注入UserMapper,刚开始可以直接复制我的代码,后面自己去慢慢理解

10.在controller下创建一个UserController类,在UserController中添加RestController注解,返回的是json格式

注意在Restful风格中

get用于查询

post用于新增

put用于更新

delete用于删除

我这边只用查询为例

package com.mhr.controller;


import com.mhr.pojo.User;
import com.mhr.service.UserService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

import java.util.List;

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

    @Autowired
    private UserService userService;

    @GetMapping("/findAll")
    public List<User> findAll(){
        return userService.findAll();
    }

    @GetMapping("/findById")
    public User findById(int id){
        return userService.findById(id);
    }
}

至此我们的SpringBoot+Mybatis已经整合完毕了 我们运行项目,显示如下,我们已经运行完毕且没有错误

接下来打开浏览器,进行测试(查询全部)

 根据id进行查询

至此我们整合完毕了,如果还有问题的话,欢迎小伙伴在下面评论区进行交流

 

  • 16
    点赞
  • 28
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值