springboot整合mybatis的超详细过程(配置模式+注解模式)
作者:笑霸final 发布时间:2023-10-03 09:54:03
标签: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
在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://blog.csdn.net/weixin_52062043/article/details/124434652
0
投稿
猜你喜欢
- 前提前段时间在做一个对外的网关项目,涉及到加密和解密模块,这里详细分析解决方案和适用的场景。为了模拟真实的交互场景,先定制一下整个交互流程。
- private static char[] constant = &
- 方式一: 配置文件 application.propertiesserver.port=7788方式二: java启动命令# 以应用参数的方
- 0x01 新建SpringBoot项目1. 新建maven工程ps:在上一教程的基础上操作,就不用新建项目了,请参考文章:SpringBoo
- 前言大家在学习Java的过程中,或者工作中,始终都绕不开集合。在单线程环境下,ArrayList就可以满足要求。多线程时,我们可以使用Cop
- 在SpringAMQP的发送方法中,接收消息的类型是Object,也就是说我们可以发送任意对象类型的消息,SpringAMQP会帮我们序列化
- 工作中有做过手机App项目,前端和android或ios程序员配合完成整个项目的开发,开发过程中与ios程序配合基本没什么问题,而andro
- ProxyFactory是创建代理类的工厂接口,其中的setProperties方法用来对工厂进行属性设置,但是mybatis内置的两个实现
- 前言之前写过一篇关于配置中心对配置内容加密解密的介绍:《Spring Cloud构建微服务架构:分布式配置中心(加密解密) 》。在这篇文章中
- java web 实现分页功能,分享给大家,具体如下:使用框架:ssm数据库:oracle话说 oracle 的分页查询比 mysql 复杂
- 该篇文章内容较多,包括有rabbitMq相关的一些简单理论介绍,provider消息推送实例,consumer消息消费实例,Direct、T
- 集合、数组都是对多个数据进行存储操作(主要是内存层面存储)的结构,简称Java容器。数组的特点1.数组初始化以后,长度确定不可变2.数组定义
- Purpose开发人员在合作的时候经常遇到以下场景:1.开发人员A在自己的本地数据库做了一些表结构的改动,并根据这些改动调整了DAO层的代码
- 背景为了了解Seata AT模式的原理,我通过源码解读的方式画出了Seata AT模式启动的图示:如果是基于Springboot项目的话,项
- 简单版/** * 产生4位随机数(0000-9999) * * @return 4位随机数 &nb
- java 闰年判断前言:给定一个年份,判断这一年是不是闰年。当以下情况之一满足时,这一年是闰年:1. 年份是4的倍数而不是100的倍数;2.
- 一、思路1.定义一个toFind变量来传入要查找的元素2.遍历整个顺序表并判定当前下标的元素等不等于toFind3.如果等于就返回一个tru
- 目录一、简述二、内容一、简述利用C# TcpClient在局域网内传输文件,可是文件发送到对面的时候却要重新命名文件的。那可不可以连着文件名
- 一、项目简述本系统主要实现的功能有: 学生以及老师的注册登录,在线考试,错题查询,学生管理,问题管理,错题管理,错题查询,分数查询,试卷管
- Springboot对配置文件的敏感信息加密前言最近公司对软件的安全问题比较在意,要求对配置文件中的敏感信息如数据库密码等进行加密。但是Sp