SpringBoot-2整合MyBatis以及基本的使用方法

目录
1.引入依赖
2.数据库表的创建
3.数据源的配置
4.编写pojo类
5.编写controller类
6.编写接口
7.编写接口的实现类
8.编写mapper
1.引入依赖
在pom.xml引入依赖
<!-- mysql--><dependency><groupId>com.mysql</groupId><artifactId>mysql-connector-j</artifactId></dependency>
<!--mybaits--><dependency><groupId>org.mybatis.spring.boot</groupId><artifactId>mybatis-spring-boot-starter</artifactId><version>3.0.3</version></dependency>
<!-- lombok--><dependency><groupId>org.projectlombok</groupId><artifactId>lombok</artifactId></dependency>
2.数据库表的创建
create database SpringbootDB;
use SpringbootDB;CREATE TABLE users (id INT AUTO_INCREMENT PRIMARY KEY,username VARCHAR(50) NOT NULL UNIQUE,password VARCHAR(255) NOT NULL,phone VARCHAR(15) NOT NULL UNIQUE,created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);INSERT INTO users (username, password, phone) VALUES('张三', 'hashed_abc123', '13800138000'),('李四', 'hashed_def456', '13800138001');
3.数据源的配置
在yml文件配置
spring:datasource:driver-class-name: com.mysql.cj.jdbc.Driverurl: jdbc:mysql://localhost:3306/springbootdbusername: rootpassword: 1234
4.编写pojo类
package com.leo.springboothd.pojo;import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;@Data // Lombok annotation to generate all the boilerplate that is normally associated with simple POJOs (Plain Old Java Objects), including getters, setters, equals, hash, and toString methods.
@NoArgsConstructor // Lombok annotation to create an empty constructor.
@AllArgsConstructor // Lombok annotation to create a constructor with all properties as arguments.
public class User {private String username; // 用户名private String password; // 密码private String phone; // 电话号码// 注意:这里没有包含'id'和'created_at'字段,因为它们在原始请求中被省略了。// 如果需要与数据库中的表进行映射,请确保这些字段的存在与否符合你的需求。
}
package com.leo.springboothd.pojo;import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;@Data
@NoArgsConstructor
@AllArgsConstructor
public class Result {private Integer code;//响应码,1 代表成功; 0 代表失败private String msg; //响应信息 描述字符串private Object data; //返回的数据//增删改 成功响应public static Result success(){return new Result(0,"success",null);}//查询 成功响应public static Result success(Object data){return new Result(0,"success",data);}//失败响应public static Result error(String msg){return new Result(1,msg,null);}
}
5.编写controller类
package com.leo.springboothd.Controller;import com.leo.springboothd.pojo.Result;
import com.leo.springboothd.pojo.User;
import com.leo.springboothd.service.UserService;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RestController;import java.util.List;@Slf4j
@RestControllerpublic class UserController {@Autowiredprivate UserService userService;@PostMapping("/register")public Result add(@RequestBody User user) {log.info("注册信息{}",user);userService.add(user);System.out.println("用户新增成功"+user);return Result.success();}@PostMapping("/login")public Result login(@RequestBody User user) {log.info("登录信息{}",user);User userResult=userService.login(user);if(userResult==null){System.out.println("没有此用户");return Result.error("没有此用户");}else{System.out.println("用户登录成功"+user);return Result.success("登录成功");}}@GetMapping("/getall")public Result getall() {log.info("执行查询所有的Users操作");List<User> users= userService.getall();return Result.success(users);}}
6.编写接口
package com.leo.springboothd.service.impl;import com.leo.springboothd.mapper.UserMapper;
import com.leo.springboothd.pojo.User;
import com.leo.springboothd.service.UserService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;import java.util.List;@Service
public class UserServiceImpl1 implements UserService {@Autowiredprivate UserMapper userMapper;@Overridepublic void add(User user) {userMapper.add(user);}@Overridepublic List<User> getall() {return userMapper.getall();}@Overridepublic User login(User user) {return userMapper.login(user);}
}
7.编写接口的实现类
package com.leo.springboothd.service.impl;import com.leo.springboothd.mapper.UserMapper;
import com.leo.springboothd.pojo.User;
import com.leo.springboothd.service.UserService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;import java.util.List;@Service
public class UserServiceImpl1 implements UserService {@Autowiredprivate UserMapper userMapper;@Overridepublic void add(User user) {userMapper.add(user);}@Overridepublic List<User> getall() {return userMapper.getall();}@Overridepublic User login(User user) {return userMapper.login(user);}
}
8.编写mapper
package com.leo.springboothd.mapper;import com.leo.springboothd.pojo.User;
import org.apache.ibatis.annotations.Insert;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Select;import java.util.List;@Mapper
public interface UserMapper {@Insert("insert into users (username, password, phone) values (#{username}, #{password}, #{phone})")void add(User user);@Select("select * from users")List<User> getall();@Select("select * from users where username=#{username} and password=#{password}")User login(User user);
}
相关文章:
SpringBoot-2整合MyBatis以及基本的使用方法
目录 1.引入依赖 2.数据库表的创建 3.数据源的配置 4.编写pojo类 5.编写controller类 6.编写接口 7.编写接口的实现类 8.编写mapper 1.引入依赖 在pom.xml引入依赖 <!-- mysql--><dependency><groupId>com.mysql</groupId><artifac…...
本周安全速报(2025.3.11~3.17)
合规速递 01 瑞士出台新规:关基设施遭遇网络攻击需在24小时内上报 原文: https://www.bleepingcomputer.com/news/security/swiss-critical-sector-faces-new-24-hour-cyberattack-reporting-rule/ 新规要求,关键基础设施组织发现网络攻击后&…...
【css酷炫效果】纯CSS实现瀑布流加载动画
【css酷炫效果】纯CSS实现瀑布流加载动画 缘创作背景html结构css样式完整代码基础版进阶版(无限往复加载) 效果图 想直接拿走的老板,链接放在这里:https://download.csdn.net/download/u011561335/90492012 缘 创作随缘,不定时更新。 创作…...
咖啡点单小程序毕业设计(JAVA+SpringBoot+微信小程序+完整源码+论文)
✌全网粉丝20W,csdn特邀作者、博客专家、CSDN新星计划导师、java领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战✌ 🍅文末获取项目下载方式🍅 一、项目背景介绍: 随着社会的快速发展和…...
网络编程套接字【端口号/TCPUDP/网络字节序/socket编程接口/UDPTCP网络实验】
网络编程套接字 0. 前言1. 认识端口号2. 认识TCP和UDP协议3. 网络字节序4. socket编程接口5. 实现一个简单的UDP网络程序5.1 需求分析5.2 头文件准备5.3 服务器端设计5.4 客户端设计5.5 本地测试5.6 跨网络测试5.7 UDP小应用——客户端输入命令,服务器端执行 6. 地址…...
【c++】内存序 和 内存一致性模型
c 11 中为了支持并发,定义了内存序和内存一致性模型。这个概念听起来非常高深,好像是在多线程编程领域浸淫多年之后的神级程序员才能搞明白,并用明白的东西。 本文尝试用最简单的方式说清楚这个概念。因为这个概念真的超级简单,大…...
7-字符串
1-ASCII 0-9 对应 48-57 A-Z 对应 65-90 a-z 对应 97-122 2-字符数组 字符变量存储单个字符 字符数组存储多个字符 字符串就是字符数组加上结束符 ’ \0 ’ #include <iostream> using namespace std; int main(){//是字符数组,不是字符串char a1[]{C,,};…...
DeepSeek 3FS 与 JuiceFS:架构与特性比较
近期,DeepSeek 开源了其文件系统 Fire-Flyer File System (3FS),使得文件系统这一有着 70 多年历时的“古老”的技术,又获得了各方的关注。在 AI 业务中,企业需要处理大量的文本、图像、视频等非结构化数据,还需要应对…...
数据结构 -- 二叉树的存储结构
二叉树的存储结构 顺序存储 #define MaxSize 100 struct TreeNode{ElemType value; //结点中的数据元素bool isEmpty; //结点元素是否为空 };//定义一个长度为MaxSize的数组t,按照从上至下、从左至右的顺序依次完成存储完全二叉树中的各个节点 TreeNode t[MaxSi…...
Unity WebGL项目访问时自动全屏
Unity WebGL项目访问时自动全屏 打开TemplateData/style.css文件 在文件最下方添加红色框内的两行代码 使用vscode或者其他编辑器打开index.html 将按钮注释掉,并且更改为默认全屏...
vue computed 计算属性简述
Vue 的 计算属性(Computed Properties) 是 Vue 实例中一种特殊的属性,用于声明式地定义依赖其他数据动态计算得出的值。它的核心优势在于能够自动追踪依赖关系,并缓存计算结果,避免重复计算,提升性…...
破局者登场:中国首款AI原生IDE Trae深度解析--开启人机协同编程新纪元
摘要 字节跳动于2025年3月3日正式发布中国首款AI原生集成开发环境Trae国内版,以动态协作、全场景AI赋能及本土化适配为核心优势。Trae内置Doubao-1.5-pro与DeepSeek R1/V3双引擎,支持基于自然语言生成端到端代码框架、实时上下文感知与智能Bug修复&…...
如何通过Python的`requests`库接入DeepSeek智能API
本文将详细介绍如何通过Python的requests库接入DeepSeek智能API,实现数据交互与智能对话功能。文章涵盖环境配置、API调用、参数解析、错误处理等全流程内容,并提供完整代码示例。 一、环境准备与API密钥获取 1. 注册DeepSeek账号 访问DeepSeek官网&am…...
【C++】std::make_shared 详解
std::make_shared 详解 1. std::make_shared 简介 std::make_shared 是 C11 标准引入的一个函数模板,用于创建 std::shared_ptr 对象,并高效地分配和管理对象的内存。它比直接使用 std::shared_ptr 构造函数 std::shared_ptr<T>(new T(...)) 具有…...
【NoSql】Redis
Ubuntu22.04版本编译安装 Redis Redis version7.4.2 #解压源码包 tar -zxvf redis-stable.tar.gz cd redis-stable/ make make install安装好了后,可执行文件默认会放入/usr/local/bin/ rootluobozi:~ ls /usr/local/bin/* /usr/local/bin/redis-cli /usr/local/…...
ClickHouse Docker 容器迁移指南:从测试环境到离线正式环境
ClickHouse Docker 容器迁移指南:从测试环境到离线正式环境 在实际开发和运维过程中,我们经常需要将测试环境中的服务迁移到正式环境,尤其是当正式环境处于离线状态时,这种迁移会变得更加复杂。本文将详细介绍如何将运行在 Docke…...
C# WPF编程-Menu
C# WPF编程-Menu 布局:代码:效果 在WPF(Windows Presentation Foundation)中,Menu控件用于创建下拉菜单或上下文菜单,它提供了丰富的定制选项来满足不同的应用需求。下面将介绍如何在WPF应用程序中使用Menu…...
利用Python爬虫获取Shopee(虾皮)商品详情:实战指南
在跨境电商领域,Shopee(虾皮)作为东南亚及台湾地区领先的电商平台,拥有海量的商品信息。无论是进行市场调研、数据分析,还是寻找热门商品,获取Shopee商品详情都是一项极具价值的任务。然而,手动…...
Docker和containerd之概览(Overview of Docker and Containerd)
Docker和containerd之概览 容器本质上就是一个进程。 Namespace是一种逻辑分组机制,允许您将集群资源划分为独立的虚拟环境。每个 Namespace 为资源提供了一个范围,使得不同的团队、应用程序或环境可以在同一集群中共存,而不会相互干扰。 C…...
【愚公系列】《高效使用DeepSeek》015-文献摘要生成
🌟【技术大咖愚公搬代码:全栈专家的成长之路,你关注的宝藏博主在这里!】🌟 📣开发者圈持续输出高质量干货的"愚公精神"践行者——全网百万开发者都在追更的顶级技术博主! 👉 江湖人称"愚公搬代码",用七年如一日的精神深耕技术领域,以"…...
【多线程】线程不安全问题
文章目录 多线程不安全的原因大的层面->多线程是随机调度的容易产生死锁 小的层面->内存不可见性引入volatile关键字 指令重排序不是原子性带来的隐患 synchronized锁的互斥性及作用可重入性——解决死锁 wait()和notify()两个突然迸发出的疑问 多线程不安全的原因 大的…...
为什么“连接断开可能导致锁未释放”
目录 两种典型场景可能导致锁未及时释放1. **数据库未及时检测到连接断开**2. **应用程序未正确处理事务** 为什么说“可能因连接断开导致死锁”?如何避免此类问题?总结 在大多数数据库实现中,如果持有锁的连接(或会话)…...
【C++】树和二叉树的实现(下)
本篇博客给大家带来的是用C语言来实现数据结构树和二叉树的实现! 🐟🐟文章专栏:数据结构 🚀🚀若有问题评论区下讨论,我会及时回答 ❤❤欢迎大家点赞、收藏、分享! 今日思想ÿ…...
注入绕过方法
目录 1.绕过 特定过滤 1.绕过空格过滤 2.绕过or,and等等过滤 3.绕过注释符过滤 4.绕过字段过滤 5. 单引号绕过 6. 逗号绕过 7. 等号与运算符绕过 2.绕过 过滤方法 1. 大小写统一过滤绕过 2. 递归替换规则绕过 3. 正则贪婪匹配绕过…...
kafka指北
为自己总结一下kafka指北,会持续更新。创作不易,转载请注明出处。 目录 集群controller选举过程broker启动流程 主题创建副本分布ISRleader副本选举机制LEO 生产数据流程同步发送和异步发送 分区策略ack应答生产者发送消息的幂等性跨分区幂等性问题&…...
Python基础语法全解析:从入门到实践
Python作为一门简洁高效、功能强大的编程语言,凭借其易读性和丰富的生态系统,已成为编程领域的“明星语言”。本文将系统讲解Python的核心语法,涵盖变量、数据类型、控制结构、函数、模块等核心概念,帮助读者快速掌握编程基础。 一…...
7、vue3做了什么
大佬认为有何优点: 组合式api----逻辑集中、对ts有更好的支持RFC–开放了一个讨论机制,可以看到每一个api的提案,方便源码维护,功能扩展,大家一起讨论 官方rfc响应式独立,new Proxy,天生自带来…...
OneCyber 平台
OneCyber 平台是一个专注于 网络安全 和 风险管理 的综合性解决方案平台。它旨在帮助企业和组织应对日益复杂的网络威胁,提供从威胁检测、风险评估到响应和恢复的全方位服务。以下是关于 OneCyber 平台的一些关键信息: 核心功能 威胁检测与分析ÿ…...
基于大语言模型与知识图谱的智能论文生成工具开发构想
基于大语言模型与知识图谱的智能论文生成工具开发构想 一、研究背景与意义 1.1 学术写作现状分析 #mermaid-svg-FNVHG5EiEgVSCpHK {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-FNVHG5EiEgVSCpHK .error-icon{fil…...
JUC大揭秘:从ConcurrentHashMap到线程池,玩转Java并发编程!
目录 JUC实现类 ConcurrentHashMap 回顾HashMap ConcurrentHashMap CopyOnWriteArrayList 回顾ArrayList CopyOnWriteArrayList: CopyOnWriteArraySet 辅助类 CountDownLatch 线程池 线程池 线程池优点 ThreadPoolExecutor 构造器各个参数含义: 线程…...
