【springBoot学习篇】springBoot集成mybatis

目录

第一步:新建spring项目的时候,需要勾选mybatis框架和jdbc连接数据库的包

第二步:在resource目录下面的配置文件当中添加以下的内容:配置数据源

第三步:配置实体类

第四步:添加一个对象的增删改查方法

查询定义:

①查询所有:

 ②条件查询:

新增操作

删除操作

更新操作:

字段不一致的时候映射:

第一步:新建spring项目的时候,需要勾选mybatis框架和jdbc连接数据库的包

然后,检查pom.xml当中是否包含了以下的几个内容:

mybatis的依赖以及mysql连接数据库的依赖;


第二步:在resource目录下面的配置文件当中添加以下的内容:配置数据源

配置数据源:

spring.application.name=demo30
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
spring.datasource.password=20021111aA#
spring.datasource.username=root
spring.datasource.url=jdbc:mysql://localhost:3306/my_blog_system?characterEncoding=utf8&useSSL=false

第三步:配置实体类

此处以一个user为例,这边需要配置一个user对象;这个对象在数据库当中对应的也是一个实体;

这里面的属性需要和数据库当中的user一一对应 

package com.example.demo.Entity;import lombok.Data;/*** @author 25043*/
@Data
public class User {private int userId;private String username;private String password;
}

第四步:添加一个对象的增删改查方法

查询定义:

①查询所有:

新建一个mybatis目录,下面定义一个类;在此类当中定义一个查询的方法:

@Mapper注解用于标注持久层的对象;

@Select注解用来编写查询数据库的语句;

queryUserList方法用来返回查询数据库的内容。 

/*** 访问数据库* @author 25043*/
@Mapper
public interface UserInfoMapper {/*** 返回数据列表* 查询列表@return*/@Select("select * from user")List<User> queryUserList();
}

 ②条件查询:

当传入userId的时候,相当于在select语句当中添加了查询userId的操作

    //方法可以传入需要查询的参数@Select("select * from user where userId = #{userId}")User queryUserById(Integer userId);

传入参数重命名:当方法传入的userId和Param里面的id一致的时候,就不需要参数重命名,否则就需要通过@Param注解重命名这个参数;让@Param注解的参数和#后面的一致

    /**方法可以传入需要查询的参数** 用户的uid@param userId* user对象@return*/@Select("select * from user where userId = #{id}")User queryUserById(@Param("id") Integer userId);

新增操作

在下面的步骤当中,insert语句的values当中,username和password都是user的属性。因此直接提取参数即可。这个参数就是方法传入的user的两个属性的值:username,password

    /*** 传入的username和password为对应user的属性* 新增的user都西昂@param user* 插入成功,返回1@return*/@Insert("insert into user(username, password) "+" values(#{username},#{password})")Integer insert(User user);

删除操作

如下面的操作所示,就是删除操作:根据id删除:需要使用到@Delete注解。

   /*** 用户的id@param id* 删除这个user@return*/@Delete("delete from user where userId = #{id}")Integer delete(Integer id);

更新操作:

    /*** 更新* 密码@param password* 用户的id@param id*/@Update("update user set password=#{password} where userId=#{id}")Integer update(String password,Integer id);

字段不一致的时候映射:

首先需要定义一个BaseResult,其中的value为定义的数据库字段的映射;

@Mapper
public interface UserInfoMapper {/**方法可以传入需要查询的参数** 用户的uid@param userId* user对象@return*///第一步:定义一个BaseResult:value的值为@Result注解里面数据库实体之间的映射@Results(id ="BaseResult" ,value = {//column为数据库当中的字段,property为实体的字段名称@Result(column = "password1" ,property = "password")})//第二步:在对应查询的方法上面标注value="BaseResult",那么就可以查询出来对应的user对象了@ResultMap(value = "BaseResult")@Select("select * from user where userId = #{id}")User queryUserById(@Param("id") Integer userId);
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.xdnf.cn/news/1451251.html

如若内容造成侵权/违法违规/事实不符,请联系一条长河网进行投诉反馈,一经查实,立即删除!

相关文章

鸿蒙轻内核Kconfig使用笔记

鸿蒙轻内核使用Kconfig进行图形化配置&#xff0c;本文专门讲解下鸿蒙轻内核LiteOS-M和LiteOS-A的图形化配置方法。本文中所涉及的源码&#xff0c;均可以在开源站点 https://gitee.com/openharmony/kernel_liteos_a 、 https://gitee.com/openharmony/kernel_liteos_m 获取。本…

Ubuntu系统设置中文输入法

重新设置超级用户权限(root)密码(非必要) sudo passwd root 需要注意的是Ubuntu的root密码不能少于8个字符 设置成功后输入命令和新的密码即可无需输入sudo启用root命令 su - 更新软件包列表 sudo apt update sudo apt upgrade 安装fcitx5输入法框架 个别情况需要卸载旧的…

EC20通信模块升级失败 Quectel QDLoader 9008

这里写自定义目录标题 usb驱动下载固件和升级软件下载开始升级上述过程升级失败&#xff0c;出现Quectel QDLoader 9008寻找解决方案&#xff0c;事了QPS t不行&#xff0c;最终使用这个Quectel_Customer_FW_Download_Tool软件解决下载链接&#xff1a; 所有下载驱动、固件、软…

【在线OJ】发帖功能前后段代码实现

一、页面布局 二、前端代码 <template><div id"app"><div style"height: 100vh"><div style"display: flex" ><el-input style"width: 95%" v-model"title" placeholder"输入标题"&g…

【Spine学习07】之跑步动作制作思路总结

前几节试着做了待机和走路动画 现在开始尝试做跑步动作 注意跑步动作和走路一样 暂时不需要使用IK约束但是会用到塞贝尔曲线&#xff08;模拟裙子飞起动效&#xff09; 第一步&#xff1a; 先将人物整体斜放置&#xff08;因为人跑步的时候&#xff0c;身体前倾&#xff09; …

『大模型笔记』主成分分析(PCA)解释:简化机器学习中的复杂数据!

主成分分析(PCA)解释:简化机器学习中的复杂数据 文章目录 一. 主成分分析(PCA)解释:简化机器学习中的复杂数据!二. 参考文献一. 主成分分析(PCA)解释:简化机器学习中的复杂数据! 主成分分析(Principal Component Analysis,简称PCA)通过 将大型数据集中的维度减少…

借助ollama实现AI绘画提示词自由,操作简单只需一个节点!

只需要将ollama部署到本地&#xff0c;借助comfyui ollama节点即可给你的Ai绘画提示词插上想象的翅膀。具体看详细步骤&#xff01; 第一步打开ollama官网&#xff1a;https://ollama.com/&#xff0c;并选择models显存太小选择的是llama3\8b参数的instruct-q6_k的这个模型。 运…

blender bpy将顶点颜色转换为UV纹理vertex color to texture

一、关于环境 安装blender的bpy&#xff0c;不需要额外再安装blender软件。在python控制台中直接输入pip install bpy即可。 二、关于代码 本文所给出代码仅为参考&#xff0c;禁止转载和引用&#xff0c;仅供个人学习。 本文所给出的例子是https://download.csdn.net/downl…

手写轮播列表(最新) 轮播图 swiper

el-row版本: <template><div class="container-div" id="app"><div><!-- 头部开始--><div class="top1"><div class="content"><div class="list"><el-row :gutter=&quo…

在ubuntu中恢复误删除的文件

1、安装 TestDisk 在 Ubuntu 上&#xff0c;可以使用以下命令安装 TestDisk&#xff1a; sudo apt-get install testdisk2、查询你删除的文件所在那个分区 #查询分区 df -h #我这里是/dev/sda2 #也可以使用下面命令查看具体哪个分区 lsblk3、查询该分区是什么系统类型 sudo …

【网络编程】基于UDP的服务器端/客户端

UDP可看作是信件邮寄&#xff0c;邮寄过程可能会信件丢失&#xff0c;是一种不可靠的数据传输服务。 但UDP性能更高&#xff0c;实现更加简洁。流控制是区分UDP和TCP的最重要标志。 IP的作用就是让离开主机B的UDP数据包传递给主机B&#xff0c;UDP根据端口号将传到主机的数据包…

华为大咖说 | AI 是行业的未来, 还是另一个“元宇宙”?

本文作者&#xff1a;陈冠宏&#xff08;华为网络MSSD首席顾问&#xff09;全文约4497字&#xff0c;阅读约需10分钟 在本年度的517电信日上&#xff0c;中国电信高层在产品升级计划发布会中喊出“ALL in AI”战略&#xff0c;其震撼力让人瞩目。 自2022年11月OpenAI推出划时代…

【Oracle篇】rman时间点异机恢复:从RAC环境到单机测试环境的转移(第六篇,总共八篇)

&#x1f4ab;《博主介绍》&#xff1a;✨又是一天没白过&#xff0c;我是奈斯&#xff0c;DBA一名✨ &#x1f4ab;《擅长领域》&#xff1a;✌️擅长Oracle、MySQL、SQLserver、阿里云AnalyticDB for MySQL(分布式数据仓库)、Linux&#xff0c;也在扩展大数据方向的知识面✌️…

Web应用安全测试-业务功能滥用(一)

Web应用安全测试-业务功能滥用&#xff08;一&#xff09; 1、短信定向转发 漏洞描述&#xff1a;短信接收人可任意指定 测试方法&#xff1a;拦截发送短信的请求&#xff0c;将手机号改为测试人员的手机号&#xff0c;测试是否可接收短信验证码。 风险分析&#xff1a;攻击…

node更改npm缓存存储位置-并配置环境变量

更改缓存位置 node安装完成之后,在安装目录中新建一个存放缓存的文件夹node_cache 此时这个文件夹必须使用管理员权限才能更改,这使得命令行下使用npm进行下载的时候总是报权限不足的错误:permit 解决办法: 右键 -> 属性 -> 安全 -> 编辑 -> 选择user -> …

mybatis中resultMap和resultType的区别

总结 基本映射 &#xff1a;&#xff08;resultType&#xff09;使用resultType进行输出映射&#xff0c;只有查询出来的列名和pojo中的属性名一致&#xff0c;该列才可以映射成功。&#xff08;数据库&#xff0c;实体&#xff0c;查询字段,这些全部都得一一对应&#xff09;…

盲盒App开发时有哪些技术框架可以借鉴

在开发盲盒App时&#xff0c;技术框架的选择对于应用的性能、稳定性和用户体验都至关重要。以下是几个可以借鉴的技术框架&#xff0c;它们在不同方面提供了优势&#xff0c;并且结合了参考文章中的相关信息&#xff1a; 前端技术框架 微信小程序框架&#xff1a; 优点&#…

Arrays与Lambda

Arrays 默认排序&#xff1a; 按照指定规则排序&#xff1a; 细节&#xff1a; 底层原理&#xff1a; 代码实现&#xff1a;o1-o2:升序排列 o2-o1:降序排列 Lambda表达式&#xff1a;简化匿名内部类方法 函数式编程&#xff1a; 格式&#xff1a; 总结&#xff1a; …

关于2024年第一批计算机程序设计员(Python)四级、三级职业技能等级证书认证考试的通知

计算机程序设计员&#xff08;Python&#xff09;详细介绍 报名详细信息&#xff1a; 报名截止时间&#xff1a;2024年6月05日 ~ 2024年6月18日 准考证下载时间&#xff1a;2023年6月24日 ~ 6月28日 考试时间&#xff1a;2024年6月29日 四级&#xff1a;08:30~12:30&#…

UDP的组播发送与接收C语言测试和nc接收组播测试

组播这个东西&#xff0c;很多年前用过一次。本身的原理不复杂&#xff0c;未知的是使用的环境&#xff0c;受使用环境的影响有多大&#xff0c;还是那句废话&#xff0c;具体问题具体分析。 发送端代码multicast.c #include <stdio.h> #include <stdlib.h> #…