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

mybatis的增删改查运用

目录

一、总览图

二、运用 


一、总览图

代码总览图 

 数据库总览图

 

二、运用 

数据库的一张表对应一个封装类,一个mapper接口,一个mapper.xml文件, 一个实现类。表中的增删改查都在里面编写

但是配置xml文件整个数据库只要一个就好了

1.pom.xml文件根据创建的maven或者spring项目去配置

2.mybatis统一配置xml文件

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE configurationPUBLIC "-//mybatis.org//DTD Config 3.0//EN""https://mybatis.org/dtd/mybatis-3-config.dtd">
<configuration><environments default="development"><environment id="development"><transactionManager type="JDBC"/><dataSource type="POOLED"><!--数据库信息--><property name="driver" value="com.mysql.cj.jdbc.Driver"/><!--改:数据库的固定连接,老版本不用cj--><property name="url" value="jdbc:mysql://localhost:3306/mishop?useSSL=false&amp;serverTimezone=UTC"/><!--mishop改:数据库的要连接的库--><property name="username" value="root"/><!--改:数据库的账号--><property name="password" value="root"/><!--改:数据库的密码--></dataSource></environment></environments><mappers><!--加载映射文件--><mapper resource="com/project/Mapper/AdminMapper.xml"/><!--改:把映射文件的源根路径复制到这里--></mappers>
</configuration>

 

3.pojo里面的封装类(属性对应数据库表中的属性)

ps:里面要含有set、get方法,有无参构造方法、toString

package com.project.pojo;public class Admin {private Integer adminId;private String adminName;private String adminPwd;private Integer adminDisable;public Integer getAdminId() {return adminId;}public void setAdminId(Integer adminId) {this.adminId = adminId;}public String getAdminName() {return adminName;}public void setAdminName(String adminName) {this.adminName = adminName;}public String getAdminPwd() {return adminPwd;}public void setAdminPwd(String adminPwd) {this.adminPwd = adminPwd;}public Integer getAdminDisable() {return adminDisable;}public void setAdminDisable(Integer adminDisable) {this.adminDisable = adminDisable;}public Admin(Integer adminId, String adminName, String adminPwd, Integer adminDisable) {this.adminId = adminId;this.adminName = adminName;this.adminPwd = adminPwd;this.adminDisable = adminDisable;}public Admin() {}@Overridepublic String toString() {return "Admin{" +"adminId=" + adminId +", adminName='" + adminName + '\'' +", adminPwd='" + adminPwd + '\'' +", adminDisable=" + adminDisable +'}';}
}

4.SQL语句接口映射文件(小蓝鸟

ps:红蓝小鸟插件(作用:方便好看)

package com.project.Mapper;import com.project.pojo.Admin;import java.util.List;
public interface AdminMapper {//增// void (封装类 封装类小写)//括号要用封装类是因为表里面那行数据都要进行增加void add (Admin admin);//改// void 自定义名称 (封装类 封装类小写);//括号要用封装类是因为表里面那行数据都要进行增加void updateId(Admin admin);//查全部// list <pojo封装类> 自定义全部查询();//因为是查询全部,所以括号里面不用加任何参数List<Admin> selectAll();//查单个//list <pojo封装类> 自定义全部查询(自定义参数根据id查询);List<Admin> selectId(int id);//删// void 自定义名称 (自定义参数为要根据id进行删除);void deleteId(int id);
}

5.编写SQL语句映射的xml文件(小红鸟

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapperPUBLIC "-//mybatis.org//DTD Mapper 3.0//EN""https://mybatis.org/dtd/mybatis-3-mapper.dtd"><!--sql映射查询方法--><!--namespace=对应接口的全部路径-->
<mapper namespace="com.project.Mapper.AdminMapper"><!--新增的SQL语句    --><!--第一行:insert新增标签 id="接口定义的名字"  parameterType="封装类的全限名"     --><!--第二行:SQL语句-自增id用null,其他的用#{封装类的属性名} ,....   --><insert id="add" parameterType="com.project.pojo.Admin">insert into admin values (null,#{adminName},#{adminPwd},#{adminDisable})</insert><!--删除的SQL语句    --><!-- 第一行:delete删除标签 id="接口定义的名字"  parameterType="封装类的全限名"   --><!--第二行:SQL语句-根据id(封装的属性)进行删除    --><delete id="deleteId" parameterType="com.project.pojo.Admin">delete from admin where adminId=#{adminId}</delete><!--修改的SQL语句    --><!--第一行:update修改标签  id="接口定义的名字"  parameterType="封装类的全限名"   --><!-- 第二行:SQL语句-因为要修改的是那行的全部数据,所以封装的属性都要一一对应写出来    --><update id="updateId" parameterType="com.project.pojo.Admin">update admin set adminName=#{adminName},adminPwd=#{adminPwd},adminDisable=#{adminDisable} where adminId=#{adminId}</update><!--查询全部的SQL语句    --><!-- 第一行:select查询标签  resultType="封装类的权限定名"  --><select id="selectAll" resultType="com.project.pojo.Admin">select * from admin</select><!-- 查询单个的SQL语句  如上 --><select id="selectId" resultType="com.project.pojo.Admin">select * from admin where AdminId=#{adminId}</select></mapper>

6.实现类(要运行哪个就直接从注释里面提取出来就好)

package com.project.pojo;import com.project.Mapper.AdminMapper;
import lombok.extern.slf4j.Slf4j;
import org.apache.ibatis.io.Resources;
import org.apache.ibatis.session.SqlSession;
import org.apache.ibatis.session.SqlSessionFactory;
import org.apache.ibatis.session.SqlSessionFactoryBuilder;import java.io.IOException;
import java.io.InputStream;public class AdminImpl {public static void main(String[] args) throws IOException {//1.加载mybatis连接文件(核心配置文件)String resource = "mybatis-config.xml";//这是连接数据库的InputStream inputStream = Resources.getResourceAsStream(resource);//固定写法SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);//固定写法//2.获取sqlSessionFactory对象--固定的写法SqlSession sqlSession = sqlSessionFactory.openSession();//3.执行sql语句AdminMapper adminMapper = sqlSession.getMapper(AdminMapper.class);//以下这些用哪个执行哪个/*         // 添加的方法Admin admin = new Admin();admin.setAdminName("wangwu");admin.setAdminPwd("8888");admin.setAdminDisable(54);//Mapper接口里面的添加方法adminMapper.add(admin);*//*        Mapper接口里面的删除方法adminMapper.deleteId(14);*//*      修改的方法Admin admin = new Admin();admin.setAdminId(7);admin.setAdminName("王五");admin.setAdminPwd("123456");admin.setAdminDisable(5555);//Mapper接口里面的修改方法adminMapper.updateId(admin);*//*      查询单个的方法,Mapper接口里面的查询方法List<Admin> selectId = adminMapper.selectId(5);System.out.println(selectId);*//*        //查询全部的方法List<Admin> selectAll = adminMapper.selectAll();System.out.println(selectAll);*///提交sqlSession.commit();//6.释放资源sqlSession.close();}}

 总结:路是一步一步慢慢走的,饭是一口一口吃的,每天进步,打好基础就好

有什么问题都可以评论区留言,看见都会回复的

如果你觉得本篇文章对你有所帮助的,多多支持吧!!!

点赞收藏评论,抱拳了!

相关文章:

mybatis的增删改查运用

目录 一、总览图 二、运用 一、总览图 代码总览图 数据库总览图 二、运用 数据库的一张表对应一个封装类&#xff0c;一个mapper接口&#xff0c;一个mapper.xml文件&#xff0c; 一个实现类。表中的增删改查都在里面编写 但是配置xml文件整个数据库只要一个就好了 1.…...

centos8安装docker运行java文件

本文由个人总结&#xff0c;如需转载使用请标明原著及原文地址 这里是基于我前一篇搭的centos8服务器做的&#xff0c;如果yum baseos源或appstream源有问题可以去看看前一篇 https://blog.csdn.net/qq_36911145/article/details/129263830 1.安装docker 1.1配置docker yum…...

Docker容器化部署.net core API

1.为API集成Docker环境。&#xff08;VS自带&#xff0c;傻瓜式操作&#xff09; 1.1 点击项目&#xff0c;右键&#xff0c;添加&#xff0c;选择Docker支持 1.2 找到项目根目录中的Dockerfile文件&#xff0c;这是VS刚刚帮我们自动生成的。进入和做如图标红地方修改。 把文…...

springcloud 服务调用feign、熔断hystrix、网关gateway

回归cloud的学习&#xff0c;对于springcloud的架构与原理以及性能的分析我们都在之前的文章里写过&#xff1a;springcloud架构的认识我们之前测试过eureka服务注册功能&#xff0c;它能很好的保存服务之间的通讯关系&#xff0c;是维系微服务通讯网之间的电话本&#xff0c;同…...

《C++ Primer》 第十二章 动态内存

《C Primer》 第十二章 动态内存 动态内存与智能指针 shared_ptr允许多个指针指向同一个对象&#xff1b;unique_ptr则“独占”所指向的对象&#xff0c;weak_ptr指向shared_ptr所管理的对象。这三种类型都定义在memory头文件中。 shared_ptr类&#xff1a;默认初始化的智能…...

多个关键字用or、and、包含、不包含动态拼接为正则表达式和SQL查询条件

目录前言校验思路1、存储方式2、实现图一实现图二实现结果最后前言 不知道大家有没有做过这种需求&#xff1a;在某字符串中&#xff0c;根据多个关键字去判断这串字符串是否满足条件。如下图&#xff1a; 亦或是 如果说要根据图二的关键字去数据库中查询符合条件的数据&a…...

初始Linux操作系统

个人简介&#xff1a;云计算网络运维专业人员&#xff0c;了解运维知识&#xff0c;掌握TCP/IP协议&#xff0c;每天分享网络运维知识与技能。座右铭&#xff1a;海不辞水&#xff0c;故能成其大&#xff1b;山不辞石&#xff0c;故能成其高。个人主页&#xff1a;小李会科技的…...

【算法数据结构体系篇class12、13】:二叉树

一、判断二叉树是否是完全二叉树/*** 判断二叉树是否是完全二叉树** //判断层序遍历过程如果节点有右子树 没有左子树 那么就不是完全二叉树* //判断层序遍历过程如果遇到第一个节点是没有左或右子树的&#xff0c;也就是只有一个子节点或者没有&#xff0c;那么再往后层序遍历…...

数字IC手撕代码--联发科(总线访问仲裁)

题目描述当A、B两组的信号请求访问某个模块时&#xff0c;为了保证正确的访问&#xff0c;需要对这些信号进行仲裁。请用Verilog实现一个仲裁器&#xff0c;对两组请求信号进行仲后&#xff0c;要求&#xff1a;协议如图所示&#xff0c;请求方发送req&#xff08;request&…...

白盒测试复习重点

白盒测试白盒测试之逻辑覆盖法逻辑覆盖用例设计方法1.语句覆盖2.判定覆盖(分支覆盖)3.条件覆盖4.判定条件覆盖5.条件组合覆盖6.路径覆盖白盒测试之基本路径测试法基本路径测试方法的步骤1.根据程序流程图画控制流图2.计算圈复杂度3.导出测试用例4.准备测试用例5.例题白盒测试总…...

学习C++这几个网站足矣

文章目录cppreferencecplusplusquick-bench[C 之父的网站](https://www.stroustrup.com/bs_faq.html)C提案[Cpp Core Guidelines](http://isocpp.github.io/CppCoreGuidelines/CppCoreGuidelines)[C Super-FAQ](https://isocpp.org/faq)[learn c](https://www.learncpp.com/)[A…...

第十四届蓝桥杯模拟赛(第三期)——C语言版

1.找最小数 问题描述: 请找到一个大于 2022 的最小数&#xff0c;这个数转换成十六进制之后&#xff0c;所有的数位&#xff08;不含前导 0&#xff09;都为字母&#xff08;A 到 F&#xff09;。 请将这个数的十进制形式作为答案提交。 #include <stdio.h> int main(…...

Flutter Button 实例

大家好&#xff0c;我是 17。 在上篇文章 使用 Flutter Button 介绍了如何修改 button 的样式&#xff0c;本文来具体实践一下。 本文列举一些常用的 button 效果&#xff0c;以便在用到的时候方便使用。因为 ElevatedButton 最常用&#xff0c;所以大多以 ElevatedButton 举…...

好玩的docker项目,盒子刷的海思nas,挂载外接硬盘。qb种子

玩法思路(5条消息) 群晖qb下载&#xff0c;tr辅种_屿兮的博客-CSDN博客_群晖辅种qbittorrent简介及设置_哔哩哔哩_bilibiliqb下载器下载Transmission最好用的BT(PT)下载神器/超简单上手教你在NAS轻松部署/告别简陋三步让你升级全中文最新Web界面&#xff08;BT下载/PT下载/NAS/…...

RabbitMQ的使用

1.初识MQ1.1.同步和异步通讯微服务间通讯有同步和异步两种方式&#xff1a;同步通讯&#xff1a;就像打电话&#xff0c;需要实时响应。异步通讯&#xff1a;就像发邮件&#xff0c;不需要马上回复。两种方式各有优劣&#xff0c;打电话可以立即得到响应&#xff0c;但是你却不…...

Selenium如何隐藏浏览器页面?

Selenium隐藏浏览器页面 背景 在工作&#xff0c;学习中&#xff0c;我们常常会使用selenium来获取网页上的数据&#xff0c;编完完整程序之后&#xff0c;实现真正意义上的自动化获取&#xff0c;此时我们会发现在运行中往往会弹出浏览器页面&#xff0c;在调试过程中&…...

基于Ant DesignPro Vue实现通过SpringBoot后台加载自定义菜单- 前后端分离

基于Ant DesignPro Vue实现通过SpringBoot后台加载自定义菜单- 前后端分离 本文想基于Ant DesignPro Vue构建的前端SpringBoot实现的后端接口服务&#xff0c;实现前后端分离开发和独立运行&#xff0c;业务场景是登录认证&#xff0c;认证成功后返回该用户相应权限范围内可见的…...

Acwing---843. n-皇后问题

n-皇后问题1.题目2.基本思想3.代码实现1.题目 n−皇后问题是指将 n 个皇后放在 nn 的国际象棋棋盘上&#xff0c;使得皇后不能相互攻击到&#xff0c;即任意两个皇后都不能处于同一行、同一列或同一斜线上。 现在给定整数 n&#xff0c;请你输出所有的满足条件的棋子摆法。 …...

彻底搞清楚内存泄漏的原因,如何避免内存泄漏,如何定位内存泄漏

作为C/C开发人员&#xff0c;内存泄漏是最容易遇到的问题之一&#xff0c;这是由C/C语言的特性引起的。C/C语言与其他语言不同&#xff0c;需要开发者去申请和释放内存&#xff0c;即需要开发者去管理内存&#xff0c;如果内存使用不当&#xff0c;就容易造成段错误(segment fa…...

自动驾驶目标检测项目实战——基于深度学习框架yolov的交通标志检测

自动驾驶目标检测项目实战——基于深度学习框架yolov的交通标志检测 目前目标检测算法有很多&#xff0c;流行的就有faster-rnn和yolov&#xff0c;本文使用了几年前的yolov3框架进行训练&#xff0c;效果还是很好&#xff0c;当然也可以使用更高版本的Yolov进行实战。本代码使…...

flink兼容性验证

flink介绍&#xff1a;https://blog.csdn.net/weixin_43563705/article/details/107604693 一、安装启动 安装flink及其依赖 yum install java-1.8.0-openjdk curl tar mkdir -p /usr/local/flink wget https://mirrors.aliyun.com/apache/flink/flink-1.16.1/flink-1.16.1-bi…...

智慧工厂数字孪生可视化监测系统有效提升厂区安全管控效力

我国制造业正处于产业升级的关键时期&#xff0c;基于数据进行生产策略制定与管理是大势所趋&#xff0c;而数据可视化以更直观的方式成为数据分析传递信息的重要工具。 深圳华锐视点通过三维可视化手段对工厂各类设备进行三维建模&#xff0c;真实复现设备设施外观、结构、运转…...

c++中基本类型详细解释外加基本运算规则

&#x1f440;&#x1f440;#c中包括算数类型和空类型。 类型含义wchat_t宽字符bool布尔类型char字符chat16_tunicode字符chat_32unicode字符short短整型int整形long长整型longlong长整型float单精度浮点型double双精度浮点型longdouble扩展精度浮点型 &#x1f440;&#x1f…...

扬帆优配“机器人+”方案加码产业发展,这些股有望高增长

“机器人”发明新需求&#xff0c;2022年中国机器人市场规模约为174亿美元。 美国时刻3月1日&#xff0c;特斯拉在得克萨斯州超级工厂举办投资者日活动&#xff0c;展示了人形机器人Optimus的视频&#xff0c;更夸大的是&#xff0c;视频中的机器人好像在制作另一个机器人&…...

推送投票制作微信推送里投票制作教程在线投票活动制作

近些年来&#xff0c;第三方的微信投票制作平台如雨后春笋般络绎不绝。随着手机的互联网的发展及微信开放平台各项基于手机能力的开放&#xff0c;更多人选择微信投票小程序平台&#xff0c;因为它有非常大的优势。1.它比起微信公众号自带的投票系统、传统的H5投票系统有可以图…...

【架构师】跟我一起学架构——微服务分层监控

博客昵称&#xff1a;架构师Cool 最喜欢的座右铭&#xff1a;一以贯之的努力&#xff0c;不得懈怠的人生。 作者简介&#xff1a;一名Coder&#xff0c;软件设计师/鸿蒙高级工程师认证&#xff0c;在备战高级架构师/系统分析师&#xff0c;欢迎关注小弟&#xff01; 博主小留言…...

Linux:https静态网站搭建案例

目录介绍httpshttps通信过程例介绍https 整个实验是在http实验基础上进行的 因为http协议在传输的时候采用的是明文传输&#xff0c;有安全隐患&#xff0c;所以出现了https&#xff08;安全套接字层超文本传输协议&#xff09; HTTPS并不是一个新协议&#xff0c; 而是HTTP…...

前端css整理

如何水平垂直居中一个盒子&#xff1f; 1.已知高度&#xff1a;子盒子设置 display: inline-block; 父盒子设置 line-height 等于高度实现垂直居中&#xff1b;使用 text-align:center实现水平居中 2.父盒子 display:flex; align-items:center;justify-content:center; 3.定位&…...

混凝土搅拌站远程监控解决方案

一、项目背景 随着大规模的基础设施建设&#xff0c;对混凝土搅拌设备的需求量日益增加&#xff0c;对其技术指标的要求也日益提高&#xff0c;其技术性能将直接关系到工程的质量和使用寿命。而混凝土生产的质量是在生产过程中形成的&#xff0c;而非最终强度的检测。混凝土生…...

Spark SQL 学习总结

文章目录&#xff08;一&#xff09;Spark SQL&#xff08;二&#xff09;SParkSession&#xff08;三&#xff09;DataFrame常见算子操作&#xff08;四&#xff09;DataFrame的sql操作&#xff08;五&#xff09;RDD转换为DataFrame&#xff08;1&#xff09;反射方式&#x…...

房产网站制作找哪家/全球最牛的搜索引擎

helloworld 步骤 编写前端代码编写后端端代码&#xff08;略&#xff09;添加菜单 配置权限官方文档跳转 笔记 添加菜单前端代码 <template><div>{{ msg }}</div> </template><script>import {getAction} from /api/manageexport default {d…...

建网站的流程/微信软文广告经典案例

function dbc2sbc(obj){ var str obj.value; var result""; for(var i0;i<str.length;i) { code str.charCodeAt(i);//获取当前字符的unicode编码 if (code > 65281 && code < 65373)//在这个unicode编码范围中的是所有的英文字母已经各种字符 { …...

javaweb做视频网站难吗/百度搜索下载app

终端命令 启动MongoDB服务&#xff1a; sudo mongod 报出如下错误&#xff0c;表示默认的存储数据目录 /data/db 不存在&#xff1a; [initandlisten] exception in initAndListen: 29 Data directory /data/db not found., terminating 解决方法&#xff1a; 创建 /data目…...

南昌网站建设公司有哪些/快速优化系统

linux环境 centOS6.8 本文采用tar包的方式部署es 准备jdk8的环境 5.4.0的es依赖jdk8及以上版本 下载linux版的jdk jdk-8u121-linux-x64.tar.gz tar -zvxf jdk-8u121-linux-x64.tar.gz//修改环境变量vim /etc/profile//添加如下JAVA_HOME/usr/java/jdk1.8.0_121export CLASSPATH…...

网站 技术/100个成功营销策划案例

Logstash配置文件 Logstash有两种配置文件&#xff1a;管道配置文件&#xff0c;它定义Logstash处理管道&#xff0c;以及设置文件&#xff0c;它指定控制Logstash启动和执行的选项。 管道配置文件 在定义Logstash处理管道的各个阶段时&#xff0c;你将创建管道配置文件&#x…...

湖南建设厅网站首页/沪深300指数基金排名

小程序中的跳转方式&#xff1a; 1.toSearch(e){// console.log(e)wx.navigateTo({url: ../../pages/search/index,})}2.用navigator标签中的url进行跳转 传参的时候写在后面 <navigator url"../../pages/fdetail/index?id{{item.id}}" class"ab" wx:…...