SpringBoot整合MyBatis(基于注解)

本文介绍了如何在SpringBoot项目中整合MyBatis并使用注解方式进行配置,包括导入依赖、配置数据库连接信息、编写实体类、Mapper接口和Controller层。通过@Mapper注解标记Mapper接口,实现MyBatis的动态代理。不编写Service层,直接在Controller层展示效果,启动应用后,浏览器显示JSON数据,表明整合成功。

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

SpringBoot整合MyBatis(注解)

  1. 导入依赖

    <!--整合mybatis依赖-->
            <dependency>
                <groupId>org.mybatis.spring.boot</groupId>
                <artifactId>mybatis-spring-boot-starter</artifactId>
                <version>1.1.1</version>
            </dependency>
            <!--mysql驱动-->
            <dependency>
                <groupId>mysql</groupId>
                <artifactId>mysql-connector-java</artifactId>
            </dependency>
    
  2. 编写配置文件

  • 配置application-dev.yml文件

(配置数据库driver、url、username、password)

spring:
 datasource:
  username: root
  password: 123456
  url: jdbc:mysql://localhost:3306/db?useUnicode=true&characterEncoding=utf-8&useSSL=true&serverTimezone=UTC
  driver-class-name: com.mysql.jdbc.Driver
  • 配置application.yml文件
spring:
  profiles:
    active: dev

​ 两个文件的意思是:在项目中,我们会配置多个环境,比如开发环境,测试环境等,每个环境的连接的数据库可能会不一样,所以我们把每个环境的参数配置到yml中。在Spring Boot中多环境配置文件名需要满足application-{profile}.yml的格式

application-dev.yml:开发环境
application-test.yml:测试环境
application-prod.yml:生产环境

至于哪个具体的配置文件会被加载,需要在application.yml文件中通过spring.profiles.active属性来设置,其值对应{profile}值。

  1. 编写实体User

    package com.mooc.springboot_mybatisdemo.pojo;
    
    public class User {
        private Integer uid;
        private String username;
        private String password;
        private String fullname;
    
        public Integer getUid() {
            return uid;
        }
    
        public void setUid(Integer uid) {
            this.uid = uid;
        }
    
        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 getFullname() {
            return fullname;
        }
    
        public void setFullname(String fullname) {
            this.fullname = fullname;
        }
    
        @Override
        public String toString() {
            return "User{" +
                    "uid=" + uid +
                    ", username='" + username + '\'' +
                    ", password='" + password + '\'' +
                    ", fullname='" + fullname + '\'' +
                    '}';
        }
    }
    
    
  2. 编写Mapper

    package com.mooc.springboot_mybatisdemo.dao;
    
    import com.mooc.springboot_mybatisdemo.pojo.User;
    import org.apache.ibatis.annotations.Mapper;
    import org.apache.ibatis.annotations.Select;
    
    import java.util.List;
    
    @Mapper
    public interface UserDao {
        @Select("select * from user")
        List<User> findAll();
    }
    
    

    注意的是@Mapper注解,是声明这个类是mapper接口,实再mybatis的动态代理。

    这个只是单个类中的注解,如果有多个mppaer接口,还可以采取包扫描的方式进行,在启动类中加上mapper包扫描

    @MapperScan(basePackages = {"com.mooc.springboot_mybatisdemo.dao"})
    
  3. 编写controller层(为了方便演示,不编写service层了)

    package com.mooc.springboot_mybatisdemo.controller;import com.mooc.springboot_mybatisdemo.dao.UserDao;import com.mooc.springboot_mybatisdemo.pojo.User;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.web.bind.annotation.RequestMapping;import org.springframework.web.bind.annotation.RestController;import java.util.HashMap;import java.util.List;import java.util.Map;@RestControllerpublic class UserController {    @Autowired    private UserDao userDao;    @RequestMapping("/hello")    public Map<String,Object> findAll(){        List<User> list=userDao.findAll();        System.out.println(list);        Map<String,Object> map=new HashMap<>();        map.put("status",200);        map.put("list",list);        return map;    }}
    
  4. 页面显示

最启动应用,在浏览器访问,页面如下

在这里插入图片描述

有看到返回的json数据,说明整合mybatis成功咯!!!


参考:https://blog.youkuaiyun.com/iku5200/article/details/82856621

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值