springboot整合mybatis(配置模式+注解模式)

springboot整合mybatis(配置模式+注解模式)个人小总结

大家好,又见面了,我是你们的朋友全栈君。

一.简单介绍

1.配置相关的依赖
2.配置模式
在这里插入图片描述
3写.mapper、controller、service
4.配置yaml文件 配置mybatis全局配置文件
(这里我使用的是配置模式+注解模式所以需要配置全局文件)

二具体配置

2.1.配置相关的依赖.

当然也可以在创建springboot的时候勾选对应的功能

		<dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <version>8.0.25</version>
        </dependency>
        <!--mybatis整合springboot起步依赖-->
        <!-- https://mvnrepository.com/artifact/org.mybatis.spring.boot/mybatis-spring-boot-starter -->
        <dependency>
            <groupId>org.mybatis.spring.boot</groupId>
            <artifactId>mybatis-spring-boot-starter</artifactId>
            <version>2.1.3</version>
        </dependency>

2.2 写.mapper、controller、service

在写这个之前话要写基本的pojo
在这里插入图片描述

pojo相关 这里使用了 lombok

package com.xbfinal.pojo;

import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;

@Data
@AllArgsConstructor
@NoArgsConstructor
public class ssmdb { 
   
    private Integer id;
    private String name;
    private String type;
    private String description;
}

2.2.1mapper文件

话不多说注意代码的注释

package com.xbfinal.mapper;


import com.xbfinal.pojo.ssmdb;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Select;

import java.util.List;

@Mapper
public interface ssmdbMapper { 
   

    //更具id查对应的书用注解模式
    @Select("select * from tbl_book where id=#{id}")
    public ssmdb getById(int id);

    //查询所有的书 ,这里我们用配置模式
    //配置模式我个人喜欢用来写复制的sql语句(狗头)
    public List<ssmdb> getAll();

}


2.2.2service文件

一般用来实现mapper的 直接看代码

package com.xbfinal.service;

import com.xbfinal.mapper.ssmdbMapper;
import com.xbfinal.pojo.ssmdb;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import java.util.List;

@Service
public class ser { 
   
    @Autowired
    ssmdbMapper ssmdbMapper;
    public ssmdb getById(int id){ 
   
        return ssmdbMapper.getById(id);
    }
    public List<ssmdb> getAll(){ 
   
        return ssmdbMapper.getAll();
    }
}

2.2.2controller文件

package com.xbfinal.controller;

import com.xbfinal.pojo.ssmdb;
import com.xbfinal.service.ser;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

import java.util.List;

@RestController
public class controller01 { 
   
    @Autowired
    ser ser;
    @RequestMapping("/id")
    public String to01(){ 
   
        
     final ssmdb byId = ser.getById(1);
        return byId.toString();
    }
    @RequestMapping("/all")
    public String to02(){ 
   
        // final ssmdb byId = ser.getById(1);

        final List<ssmdb> all = ser.getAll();
        return all.toString();
    }

}

2.3配置相关文件

1.写mysql的文件。写在application.yaml文件中

spring:
  datasource:
    password: 0615
    username: root
    driver-class-name: com.mysql.cj.jdbc.Driver
    url: jdbc:mysql://localhost:3306/ssm_db?serverTimezone=UTC&characterEncoding=utf8&useUnicode=true&useSSL=false

2.由于用配置模式+注解模式所以需要配置mybatis全局文件
在这里插入图片描述

在static文件下创建mybatis文件夹然后创建配置文件如下

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config 3.0//EN" "http://mybatis.org/dtd/mybatis-3-config.dtd">
<configuration>
    <!--基本的东西都不用配置,因为springboot配好了-->
</configuration>

接着在mapper文件下写mybatis对应的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.xbfinal.mapper.ssmdbMapper">
    
    <!--public List<ssmdb> getAll();-->
    <select id="getAll" resultType="com.xbfinal.pojo.ssmdb">
        select * from tbl_book
    </select>
</mapper>


最后在yaml文件中配好mybatis

在这里插入图片描述

mybatis:
  config-location: classpath:static/mybatis/mybatis-config.xml
  mapper-locations: classpath:static/mybatis/mapper/*.xml

三、结果截图

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

数据库
在这里插入图片描述

四、可能遇到的报错

SpringBoot连接数据库报错:Access denied for user ‘root‘@‘localhost‘ (using password: YES)

解决方案
检查自己的mysql配置是否正确如果正确尝试一下把密码加上""如图

在这里插入图片描述

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/152637.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • Qt多线程1:QThread

    Qt多线程1:QThreadQt有两种多线程的方法,其中一种是继承QThread的run函数,另外一种是把一个继承于QObject的类转移到一个Thread里。Qt4.8之前都是使用继承QThread的run这种方法,但是Qt4.8之后,Qt官方建议使用第二种方法。两种方法区别不大,用起来都比较方便,但继承QObject的方法更加灵活。这里要记录的是如何正确的创建一个线程,特别是如何正确的退出一个线程。

    2022年5月28日
    37
  • X3协同胚布库存管理系统操作手册「建议收藏」

    X3协同胚布库存管理系统操作手册「建议收藏」胚布库存管理系统操作手册 转载于:https://blog.51cto.com/itlingm/399124

    2022年6月12日
    35
  • 用户态和内核态:用户态线程和内核态线程有什么区别?[通俗易懂]

    用户态和内核态:用户态线程和内核态线程有什么区别?[通俗易懂]转载文章来源于拉钩教育重学操作系统林䭽用户态和内核态:用户态线程和内核态线程有什么区别?什么是用户态和内核态Kernel运行在超级权限模式(SupervisorMode)下,所以拥有很高的权限。按照权限管理的原则,多数应用程序应该运行在最小权限下。因此,很多操作系统,将内存分成了两个区域:内核空间(KernalSpace),这个空间只有内核程序可以访问;用户空间(UserSpace),这部分内存专门给应用程序使用。用户态和内核态用户空间中的代码被限制了只能使用一

    2025年12月9日
    4
  • Java除法运算(保留小数)

    Java除法运算(保留小数)编程的人都知道,java中的“/”、“%”运算,其中前者为取整,后者取余数。那么有没有快捷的运算方法取正常的运算结果呢?查了资料,发现很简单。代码如下: /** *TODO除法运算,保留小数 *@author袁忠明 *@date2018-4-17下午2:24:48 *@parama被除数 *@paramb除数 *@return商 */ pu…

    2022年5月3日
    50
  • PHP的反射类ReflectionClass、ReflectionMethod使用实例

    PHP的反射类ReflectionClass、ReflectionMethod使用实例简介PHPReflectionAPI是PHP5才有的新功能,它是用来导出或提取出关于类、方法、属性、参数等的详细信息,包括注释。用得比较多的就只有两个ReflectionClass与ReflectionObject,两个的用法都一样,只是前者针对类,后者针对对象,后者是继承前者的类;然后其中又有一些属性或方法能返回对应的Reflection对象反射是什么?它是指在PHP运行状态中,扩展分析PH…

    2025年6月11日
    6
  • PCB设计资料:看到最后才知道是福利

    PCB设计资料:看到最后才知道是福利

    2021年12月7日
    52

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号