当前位置: 首页 > news >正文

Java连接数据库增删改查-MyBatis

@准备工作:

1.创建一个springboot项目,并添加四个依赖

分别是,MyBatis的启动依赖和安装依赖,SQL的依赖,测试依赖,如下:

2.然后创建一张至少两条数据的表

(表可以用各种图形化工具创建,因为SQL语句是统一的)

3.配置数据库的信息:

(一定要是自己的表名和密码,否则连接不上你本机数据库信息)

 4.创建一个自己的员工类,来为后面的操作做准备:

package com.zaizai.springmybatisrued.pojo;import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.time.LocalDate;
import java.time.LocalDateTime;@Data
@NoArgsConstructor
@AllArgsConstructor
public class Emp {private Integer id;private String username;private String password;private String name;private Short gender;private String image;private Short job;private LocalDate entrydate;private Integer deptId;private LocalDateTime createTime;private LocalDateTime updateTime;
}

@增

1.先常见一个接口,在接口里面创建一个接口方法来实现增加数据

(方法上面要一个注解,就是数据库添加数据的关键字,看下面代码):

(注意,这里两个注解第一个是是否返回主键,并给主键设置返回给谁用的,第二个就是往数据库添加数据的注解,添加的对象被封装到了一个emp类里面)

    @Options(keyProperty = "id",useGeneratedKeys = true)@Insert("insert into emp (username, name, gender, image, job, entrydate, dept_id, create_time, update_time)" +" values (#{username},#{name},#{gender},#{image},#{job},#{entrydate},#{deptId},#{createTime},#{updateTime})")void insert(Emp emp);

2.接口设置好了之后直接在测试类里面写测试代码:(先设置对象,然后封装好的对象交给方法添加到数据库)

    @Testpublic void springInsert() {Emp emp = new Emp();//        emp.setId(15);emp.setUsername("Tom3");emp.setName("汤姆2");emp.setImage("1 .jpg");emp.setGender((short) 1);emp.setJob((short) 1);emp.setEntrydate(LocalDate.of(2000, 1, 1));emp.setCreateTime(LocalDateTime.now());emp.setUpdateTime(LocalDateTime.now());emp.setDeptId(1);empMapper.insert(emp);System.out.println(emp.getId());}

@删

方法:

(我这个是设置的返回删除的数据的主键的)

    @Delete("delete from emp where id=#{id}")//id删除数据public Integer delete(Integer id);

实现:

  @Autowiredprivate EmpMapper empMapper;@Testpublic void springUred() {//返回的是删除的数据数Integer id = empMapper.delete(15);System.out.println(id);}

@改

(接下来就差不多了,都是用对应的接口然后定义方法,调用方法连接数据库进行对数据的操作)

方法:

    @Update("update emp set username=#{username},name=#{name},gender=#{gender},image=#{image}," +"job=#{job},entrydate=#{entrydate},dept_id=#{deptId},update_time=#{updateTime} where id=#{id}")
public void update(Emp emp);

实现:

 public void testUpdate() {//构造员工对象Emp emp = new Emp();emp.setId(14);emp.setUsername("wei");emp.setName("afaf");emp.setImage("1 .jpg");emp.setGender((short) 1);emp.setJob((short) 1);emp.setEntrydate(LocalDate.of(2000, 1, 1));emp.setUpdateTime(LocalDateTime.now());emp.setDeptId(1);empMapper.update(emp);}

@查

方法:

    @Select("select * from emp where id=#{id}")public Emp select(Integer id);

实现:

    public void springSelect(){Emp emp = empMapper.select(14);System.out.println(emp);}

(一定要注意准备工作准备好,依赖都不要少,要不然必然爆红!!!!!!)

相关文章:

Java连接数据库增删改查-MyBatis

准备工作: 1.创建一个springboot项目,并添加四个依赖 分别是,MyBatis的启动依赖和安装依赖,SQL的依赖,测试依赖,如下: 2.然后创建一张至少两条数据的表 (表可以用各种图形化工具创…...

在国内,现在月薪1万是什么水平?

看到网友发帖问:现在月薪1W是什么水平? 在现如今的情况下,似乎月薪过万这个标准已经成为衡量个人能力的一个标准了,尤其是现在互联网横行的时代,好像年入百万,年入千万就应该是属于大众的平均水平。 我不是…...

【Python网络爬虫入门教程1】成为“Spider Man”的第一课:HTML、Request库、Beautiful Soup库

Python 网络爬虫入门:Spider man的第一课 写在最前面背景知识介绍蛛丝发射器——Request库智能眼镜——Beautiful Soup库 第一课总结 写在最前面 有位粉丝希望学习网络爬虫的实战技巧,想尝试搭建自己的爬虫环境,从网上抓取数据。 前面有写一…...

燕千云汇联易联袂出击:护航医企合规,丝滑内外协作

👉 如想详细了解燕千云医药行业快速实施包(ITFA),可继续阅读详细内容: 文/玉娇龙 一. 医药行业数字化挑战 医药研发从基础研究到最终注册上市的整个生命周期长则需要10多年,短则需要6-7年,在漫长…...

【线性代数与矩阵论】Jordan型矩阵

Jordan型矩阵 2023年11月3日 #algebra 文章目录 Jordan型矩阵1. 代数重数与几何重数2. Jordan块与Jordan标准型2.1 最小多项式与Jordan标准型2.2 两类重要矩阵 3. 矩阵的Jordan分解3.1 Jordan分解的应用 下链 1. 代数重数与几何重数 在对向量做线性变换时,向量空间…...

laravel的ORM 对象关系映射

Laravel 中的 ORM(Eloquent ORM)是 Laravel 框架内置的一种对象关系映射系统,用于在 PHP 应用中与数据库进行交互。Eloquent 提供了一种优雅而直观的语法,使得开发者可以使用面向对象的方式进行数据库查询和操作。 定义模型&…...

049:VUE 引入jquery的方法和配置

第049个 查看专栏目录: VUE ------ element UI 专栏目标 在vue和element UI联合技术栈的操控下,本专栏提供行之有效的源代码示例和信息点介绍,做到灵活运用。 (1)提供vue2的一些基本操作:安装、引用,模板使…...

Qt设置类似于qq登录页面

头文件 #ifndef WIDGET_H #define WIDGET_H#include <QWidget> #include <QWindow> #include <QIcon> #include <QLabel> #include <QMovie> #include <QLineEdit> #include <QPushButton>QT_BEGIN_NAMESPACE namespace Ui { class…...

【GDB】

GDB 1. GDB调试器1.1 前言1.2 GDB编译程序1.3 启动GDB1.4 载入被调试程序1.5 查看源码1.6 运行程序1.7 断点设置1.7.1 通过行号设置断点1.7.2 通过函数名设置断点1.7.3 通过条件设置断点1.7.4 查看断点信息1.7.5 删除断点 1.8 单步调试1.9 2. GDB调试core文件2.1 设定core文件的…...

深入了解Java Duration类,对时间的精细操作

阅读建议 嗨&#xff0c;伙计&#xff01;刷到这篇文章咱们就是有缘人&#xff0c;在阅读这篇文章前我有一些建议&#xff1a; 本篇文章大概6000多字&#xff0c;预计阅读时间长需要5分钟。本篇文章的实战性、理论性较强&#xff0c;是一篇质量分数较高的技术干货文章&#x…...

Python:核心知识点整理大全5-笔记

目录 2. 使用方法pop()删除元素 3. 弹出列表中任何位置处的元素 4. 根据值删除元素 3 章 列表简介 3.3 组织列表 3.3.1 使用方法 sort()对列表进行永久性排序 3.3.2 使用函数 sorted()对列表进行临时排序 3.3.3 倒着打印列表 3.3.4 确定列表的长度 3.5 小结 2. 使用方…...

预训练(pre-learning)、微调(fine-tuning)、迁移学习(transfer learning)

预训练&#xff08;pre-learning&#xff09; 搭建一个网络模型来完成一个特定的图像分类的任务。首先&#xff0c;你需要随机初始化参数&#xff0c;然后开始训练网络&#xff0c;不断调整参数&#xff0c;直到网络的损失越来越小。在训练的过程中&#xff0c;一开始初始化的…...

王道数据结构课后代码题 p149 第8—— 12(c语言代码实现)

目录 8.假设二叉树采用二叉链表存储结构存储&#xff0c;试设计一个算法&#xff0c;计算一棵给定二叉树的所有双分支结点个数。 9.设树B是一棵采用链式结构存储的二叉树&#xff0c;编写一个把树 B中所有结点的左、右子树进行交换的函数。 10.假设二叉树采用二叉链存储结构存储…...

Nginx服务优化以及防盗链

1. 隐藏版本号 以在 CentOS 中使用命令 curl -I http://192.168.66.10 显示响应报文首部信息。 查看版本号 curl -I http://192.168.66.10 1. 修改配置文件 vim /usr/local/nginx/conf/nginx.conf http {include mime.types;default_type application/octet-stream;…...

20231210 随机矩阵和M矩阵

1. 非负矩阵&#xff1a;矩阵元素均非负 定义 7.1.1 设 A ( a i j ) ∈ R m n \boldsymbol{A}\left(a_{i j}\right) \in \mathbb{R}^{m \times n} A(aij​)∈Rmn, 如果 a i j ⩾ 0 , i 1 , ⋯ , m ; j 1 , ⋯ , n , a_{i j} \geqslant 0, \quad i1, \cdots, m ; j1, \cd…...

Linux(centos)学习笔记(初学)

[rootlocalhost~]#:[用户名主机名 当前所在目录]#超级管理员标识 $普通用户的标识 Ctrlshift放大终端字体 Ctrl缩小终端字体 Tab可以补全命令 Ctrlshiftc/V复制粘贴 / &#xff1a;根目录&#xff0c;Linux系统起点 ls&#xff1a; #list列出目录的内容&#xff0c;通常用户查看…...

ECharts标题字体大小自适应变化

我们在做自适应Echarts的时候,字体大小在配置项里是如下配置的, title 标题组件,包含主标题和副标题。 以下是常用的对标题的设置: title:{//设置图表的标题text:"主标题",link:"baidu.com", //设置标题超链接target:"self",...

解决使用pnpm安装时Sharp模块报错的方法

在使用pnpm进行项目依赖安装的过程中&#xff0c;有时候会遇到Sharp模块报错的情况。Sharp是一个用于处理图像的Node.js模块&#xff0c;但它的安装可能会因为各种原因而失败&#xff0c;导致项目无法正常启动。本文将介绍这个问题的方法。 问题描述 解决方法 在命令行分别输…...

Redis 数据的持久化 RDB、AOF、RDB + AOF、No persistence 各自优缺点

文章目录 一、RDB (Redis Database)1.1 RDB 优势1.2 RDB 缺点1.3 RDB 如何工作1.4 RDB配置1.5 开启/关闭&#xff0c;RDB快照策略&#xff0c;save指令1.6 持久化硬盘文件&#xff0c;dbfilename指令1.7 持久化硬盘文件的存储地址&#xff0c;dir指令 二、AOF (Append Only Fil…...

回味童年经典游戏的项目

目录 1.超级玛丽2.坦克大战3.吃豆人游戏4.贪吃蛇游戏 1.超级玛丽 项目地址&#xff1a;超级马里奥游戏源码 在线试玩网址在资源描述中 在线试玩&#xff1a;http://martindrapeau.github.io/backbone-game-engine/super-mario-bros/index.html 主要语言&#xff1a;JavaScript…...

7. 线程编程(线程概念和创建)

线程的创建 #include <pthread.h> int pthread_create(pthread_t *thread, const pthread_attr_t *attr, void *(*routine)(void *), void *arg); 成功返回0&#xff0c;失败时返回错误码 thread 线程对象 attr 线程属性&#xff0c;NULL代表默认属性 routine 线程执行…...

抖音下载神器:如何免费批量下载无水印视频、音乐和图片

抖音下载神器&#xff1a;如何免费批量下载无水印视频、音乐和图片 【免费下载链接】douyin-downloader A practical Douyin downloader for both single-item and profile batch downloads, with progress display, retries, SQLite deduplication, and browser fallback supp…...

TrollInstallerX:iOS越狱生态的智能安装革命

TrollInstallerX&#xff1a;iOS越狱生态的智能安装革命 【免费下载链接】TrollInstallerX A TrollStore installer for iOS 14.0 - 16.6.1 项目地址: https://gitcode.com/gh_mirrors/tr/TrollInstallerX 还在为复杂的越狱安装流程而烦恼吗&#xff1f;TrollInstallerX…...

金融数据宝藏库:沪深Level2与高频数据拆解

被高频数据搞懵了&#xff1f;硬盘空间就是这么没的。刚入坑那会儿&#xff0c;总想用最细的数据&#xff0c;结果光下载和整理就耗掉大半天&#xff0c;策略还没写呢。 今天简单聊聊几种常见的高频数据到底有啥区别&#xff0c;主要是沪深股票这块。数据来源是CMES金融数据库&…...

矩池云实战: 用Gemma 4 + Open WebUI打造你的私人OpenAI

在开源 AI 生态中&#xff0c;如何不依赖闭源 API&#xff0c;纯靠开源堆栈搭建出一套具备“深度思考&#xff08;CoT&#xff09;&原生多模态顶配开发环境&#xff1f; 答案是&#xff1a;Ollama Gemma-4-31B Open WebUI Ollama Gemma-4-31B Open WebUI 的真正核心价…...

Recipe协议:TEE与RDMA赋能的分布式复制技术

1. 现代硬件加速的复制协议&#xff1a;Recipe在不可信云环境中的应用在分布式系统的世界里&#xff0c;复制协议就像一支交响乐团的指挥&#xff0c;确保每个乐手&#xff08;节点&#xff09;都能在正确的时间演奏正确的音符&#xff08;数据&#xff09;。传统的崩溃容错&am…...

深圳不锈钢五金冲压件

在深圳&#xff0c;不锈钢五金冲压件的市场需求巨大&#xff0c;广泛应用于智能家居、无人机、医疗器械、安防设备等众多领域。然而&#xff0c;面对众多的供应商&#xff0c;如何挑选到合适的合作伙伴成为了许多企业的难题。今天&#xff0c;我们就来对比测评几家深圳的不锈钢…...

大模型推理层归零:从vLLM到硬件直驱的架构革命

1. 项目概述&#xff1a;这不是一次普通更新&#xff0c;而是一次架构级“蒸发”“Anthropic Just Shipped the Layer That’s Already Going to Zero”——这个标题乍看像科技媒体的夸张头条&#xff0c;但作为连续三年深度跟踪Claude模型演进、亲手部署过从claude-2.1到claud…...

通用人工智能(AGI)完整技术方案:以字序生命模型(WOLM)为认知内核的双脑协同架构

一、AGI的终极定义在讨论技术方案之前&#xff0c;先定义什么是AGI。当前主流的AGI定义&#xff0c;强调一个系统能在绝大多数人类能做的智力任务上达到或超越人类水平。这个定义隐含了一个假设&#xff1a;AGI的核心是“智力”——逻辑推理、知识储备、创造力。我们的定义不同…...

科学数据压缩技术:原理、应用与优化

1. 科学数据压缩技术概述在超级计算从千万亿次&#xff08;Petascale&#xff09;向百亿亿次&#xff08;Exascale&#xff09;跨越的时代背景下&#xff0c;科学仪器&#xff08;如加速器、光源、望远镜&#xff09;的升级使得科研数据呈现爆炸式增长。以气候模拟为例&#xf…...