SpringBoot整合Mybatis

本文详细介绍了在SpringBoot项目中集成MyBatis的过程,包括添加依赖、配置数据库、使用Lombok简化POJO和Mapper接口,以及Controller层的实现。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

基础工作

1、创建项目springboot项目,勾选web+JDBC+MySQL驱动

在这里插入图片描述
在这里插入图片描述

2、导入mybatis-springboot-starter依赖

mybatis-spring-boot-starter 2.x 版本暂时还不适配 Spring Boot 3 版本
mybatis-spring-boot 3.0.0版本,才完全支持 Spring Boot 3

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

3、编写application.properties配置文件


#数据库配置 根据自己数据库username和password修改
spring.datasource.username=root
spring.datasource.password=123456
spring.datasource.url=jdbc:mysql://localhost:3306/mybatis?serverTimezone=UTC&useUnicode=true&characterEncoding=utf-8&useSSL=false
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver

#整合mybatis
#给pojo实体类起别名
mybatis.type-aliases-package=com.kuang.pojo  
#接口的配置文件的位置 我这里接口配置文件是UserMapper.xml 如下图所示
mybatis.mapper-locations=classpath:mybatis/mapper/*.xml 

在这里插入图片描述

项目结构

在这里插入图片描述

使用Lombok插件

下载:File→Setting→Plugins
1.导入Lombok依赖
在这里插入图片描述
2.导入Lombok依赖

		<!--导入Lombok依赖-->
        <!-- https://mvnrepository.com/artifact/org.projectlombok/lombok -->
        <dependency>
            <groupId>org.projectlombok</groupId>
            <artifactId>lombok</artifactId>
            <version>1.18.12</version>
            <!--这里是设置作用域-->
            <!--注释作用域,表明我想让它为全局使用-->
            <!--<scope>provided</scope>-->
        </dependency>

编写相关类

1、编写pojo包下的实体类User,使用lombok

package com.model.entity;
import lombok.Data;
import org.apache.ibatis.type.Alias;

@Data
@Alias("User")
public class User {
    private int id;
    private String username;
    private String password;
    private String name;
}

2、编写接口UserMapper


package com.mapper.usermapper;
import com.model.entity.User;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.Select;
import org.springframework.stereotype.Repository;

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


@Mapper
@Repository
public interface UserMapper {


//    @Select("select * from t_user")
//    List<User> queryUserList();

    @Select("SELECT * FROM t_user WHERE id=#{id}")
    User findById(Integer id);

    List<User> queryUserList();

    @Select("select * from t_user where username = #{username}")
    List<User> selectByname(String usermame);
}

接口实现配置文件UserMapper.xml


package com.mapper.usermapper;
import com.model.entity.User;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.Select;
import org.springframework.stereotype.Repository;

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


@Mapper
@Repository
public interface UserMapper {


//    @Select("select * from t_user")
//    List<User> queryUserList();

    @Select("SELECT * FROM t_user WHERE id=#{id}")
    User findById(Integer id);

    List<User> queryUserList();

    @Select("select * from t_user where username = #{username}")
    List<User> selectByname(String usermame);
}

配置文件UserMapper.xml的位置
在这里插入图片描述

编写contoller中UserController

import com.kuang.mapper.UserMapper;
import com.kuang.pojo.User;
import org.omg.CORBA.PUBLIC_MEMBER;
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.ResponseBody;
import org.springframework.web.bind.annotation.RestController;
import sun.net.util.IPAddressUtil;

import java.util.List;

@RestController
public class UserController {

    @Autowired
    private UserMapper userMapper;

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

    @RequestMapping("/info/{id}")
    public User findById(@PathVariable("id") Integer id) {
        return userservice.findById(id);
    }

    @PostMapping("/login")
    // 如果前端传递的数据是json格式,必须使用对象接收,同时需要添加@RequestBody
    public Result login(@RequestBody User user){
        return userservice.login(user.getUsername());
    }

}
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值