【Mybatis】基础增删改查

一.创建SpringBoot项目

创建新项目需要添加的依赖

当然如果是以前的项目也可以直接在pom.xml文件中添加依赖:

MySQL Driver依赖

<dependency><groupId>com.mysql</groupId><artifactId>mysql-connector-j</artifactId><scope>runtime</scope>
</dependency>

Mybatis Frameworl依赖

<dependency><groupId>org.mybatis.spring.boot</groupId><artifactId>mybatis-spring-boot-starter</artifactId><version>2.3.1</version>
</dependency>

还有第二种方式导入依赖

>pom.xml文件里面

>右击generate        >Edit Starters

>勾选对应的依赖,点击OK即可.

二.Mybatis

Mybatis的写法有两种

1.xml

2.注解

步骤

1.引入Mybatis依赖  引入对应数据库的依赖,比如mysql

2.配置数据库的相关信息

3.定义Java对象

4.写实现

企业建表规约

参考阿里建表规约

1.字段名/表名 全部小写

2.表必备三字段

id

gmt_create创建时间

gmt_modifies修改时间

3.逻辑删除和物理删除

逻辑删除:指从逻辑上进行数据删除

物理删除:从硬盘上进行数据删除 delete

单元测试

在需要写单元测试的类中,右键点击generate,选择Test

配置mybatis相关日志

#指定mybatis输出⽇志的位置, 输出控制台

mybatis.configuration.log-impl=org.apache.ibatis.logging.stdout.StdOutImpl

建议只出现在开发环境中,不要出现在线上环境

日志的打印,也是影响性能的 ;

灰度发布:是指发布环境 . 比如发布环境有200台,发布的时候是一批一批的发布 .

通常在刚开始的时候发布1台,也就是观察一段时间后,如果没有问题,继续下一批.

传递参数

如果只有一个参数, sql的名称可以是任意的.

三.注解方式

1.添加

//设置返回自增id@Options(useGeneratedKeys = true,keyProperty = "id")@Insert("insert into userinfo (username,password,age,gender,phone)"+"values(#{username},#{password},#{age},#{gender},#{phone})")Integer insert(UserInfo userInfo);

2.删除

@Select("select * from userinfo")List<UserInfo> selectAll();

3.修改

@Update("update userinfo set age=#{age} where id=#{id}")Integer update(UserInfo userInfo);

4.查询

@Select("select * from userinfo")List<UserInfo> selectAll2();

结果映射

Mybatis会自动的根据数据库的字段名和Java对象的属性名,进行映射,如果名称一样就进行赋值

注解方式有3种方式进行结果映射

4.1对mysql的字段进行重命名

4.2使用注解的方式

@Results注解映射 , 再用@ResultMap注解复用映射

4.3配置的方式

在配置文件中配置已以下内容,mysql字段就会完成自动转驼峰

注意:注解和xml方式是可以共存的

四.xml方式

xml的方式比注解方式稍微复杂一点,分为以下三步 :

1.配置数据库

和注解方式一样

2.指明xml的路径

在配置文件中指明xml的路径,写入以下内容

# 配置 mybatis xml 的⽂件路径,在 resources/mapper 创建所有表的 xml ⽂件 mapper:mybatis.mapper-locations: classpath:mapper/**Mapper.xml

注意:路径名是程序员自定义的

3.写xml的实现

这是一个例子:

接口的定义

实现

xml文件配置SQL , 下面是模板

<?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">//namespace更改成具体要要构造mapper类的全限定路径
<mapper namespace="com.example.mybatisforbit.mapper.UserInfoXMLMapper"> </mapper>

结果类型就是返回的类型,不管返回的是对象还是list,此处定义的都是返回的数据的类型,比如这里返回的是UserInfo类型的数据.

namespace表示要实现哪个接口,要写全限定类名.

3.1添加

实现

重命名

3.2删除

3.3修改

3.4查询

结果映射

回忆注解方式中结果映射的三种解决方法

1.给sql字段起别名

2.@Result注解

3.配置自动转驼峰

mybatis.configuration.map-underscore-to-camel-case:true#配置驼峰⾃动转换

  

xml的结果映射 1和3 方式都是可以的.

除此之外还有一种与@Results相似的方式: 利用<resultMap>标签来进行数据库字段名和类属性的映射.

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

基于vue+element-plus+echarts编写动态绘图页面

我们都知道网页的echarts可以画图&#xff0c;但是很多情况下都需要编码实现绘图逻辑&#xff0c;如果有一个前端页面可以让我输入数据然后动态生成图表的话那么该多好&#xff0c;其实这个需求不难实现&#xff0c;先看效果。 整体页面分为左右两个部分&#xff0c;其中左边的…

Node.js入门指南(二)

目录 http模块 创建http服务端 浏览器查看 HTTP 报文 获取 HTTP 请求报文 设置响应报文 网页资源的基本加载过程 静态资源服务 hello,大家好&#xff01;上一篇文章我们对Node.js进行了初步的了解&#xff0c;并介绍了Node.js的Buffer、fs模块以及path模块。这一篇文章主…

计算机毕业设计 基于SpringBoot的物业管理系统的设计与实现 Java实战项目 附源码+文档+视频讲解

博主介绍&#xff1a;✌从事软件开发10年之余&#xff0c;专注于Java技术领域、Python人工智能及数据挖掘、小程序项目开发和Android项目开发等。CSDN、掘金、华为云、InfoQ、阿里云等平台优质作者✌ &#x1f345;文末获取源码联系&#x1f345; &#x1f447;&#x1f3fb; 精…

2001-2022年上市公-供应链话语权测算数据(原始数据+处理代码Stata do文档+结果)

2001-2022年上市公-供应链话语权测算数据&#xff08;原始数据处理代码Stata do文档结果&#xff09; 1、时间&#xff1a;2001-2022年 2、指标&#xff1a;企业代码、股票代码、年份、股票简称、上市公司前五大供应商的采购额之和占企业当年总采购额的比例、上市公司前五大客…

C语言猜素数(ZZULIOJ1292:猜素数)

题目描述 Lx给Xp出了一道难题&#xff0c;随便在0和1000000之间抽出两个数&#xff0c;估计在这两个数之间的素数的个数&#xff0c;如果猜测的结果和正确结果一样&#xff0c;Xp就可以得到Lx的一件礼物&#xff0c;你能猜对吗&#xff1f;编程实现一下吧&#xff01; 输入&…

​root账号登录群晖NAS教程​

用WinSCPPuTTY以root账号登录群晖NAS保姆教程用WinSCPPuTTY可SecureCRT 以root账号登录群晖NAS 1、先用自己的用户名 密码登陆。 2、切换到root权限 输入sudo -i,按回车,然后也是输入群辉登录的密码。成功之后,显示$ 变成 #号

Python基于jieba+wordcloud实现文本分词、词频统计、条形图绘制及不同主题的词云图绘制

目录 序言&#xff1a;第三方库及所需材料函数模块介绍分词词频统计条形图绘制词云绘制主函数 效果预览全部代码 序言&#xff1a;第三方库及所需材料 编程语言&#xff1a;Python3.9。 编程环境&#xff1a;Anaconda3&#xff0c;Spyder5。 使用到的主要第三方库&#xff1a;…

计算机中由于找不到vcruntime140.dll无法继续执行代码无法打开软件怎么解决分享

关于如何解决vcruntime140.dll无法继续执行代码的6个教程。在这个科技日新月异的时代&#xff0c;电脑已经是我们日常和工作中必不可少的电子产品&#xff0c;然后我们在使用过程中经常会遇到不一样的问题&#xff0c;比如vcruntime140.dll文件丢失&#xff0c;那么vcruntime14…

Java特殊文件

Properties 读取数据 package com.itheima.d1;import java.io.FileNotFoundException; import java.io.FileReader; import java.nio.charset.StandardCharsets; import java.util.Properties; import java.util.Set;public class Test1 {public static void main(String[] arg…

吴恩达《机器学习》10-4-10-5:诊断偏差和方差、正则化和偏差/方差

一、诊断偏差和方差 在机器学习中&#xff0c;诊断偏差和方差是改进模型性能的关键步骤。通过了解这两个概念&#xff0c;能够判断算法的问题究竟是欠拟合还是过拟合&#xff0c;从而有针对性地调整模型。 1. 概念理解 偏差&#xff08;Bias&#xff09;&#xff1a; 表示模…

Oracle 最终抛弃了 Sun !

随着 Solaris 团队的彻底完蛋&#xff0c;看起来 Sun 微系统公司最终连块骨头都没剩下。 来自前 Sun 社区的消息表明&#xff0c;一月份的传闻&#xff08;Oracle 裁员 450 人&#xff09;成为了现实&#xff0c;上周五&#xff0c;Oracle 裁掉了 Solaris 和 SPARC 团队的核心员…

5.7 Windows驱动开发:取进程模块函数地址

在笔者上一篇文章《内核取应用层模块基地址》中简单为大家介绍了如何通过遍历PLIST_ENTRY32链表的方式获取到32位应用程序中特定模块的基地址&#xff0c;由于是入门系列所以并没有封装实现太过于通用的获取函数&#xff0c;本章将继续延申这个话题&#xff0c;并依次实现通用版…

Debian 11.3 ARM64 安装中文语言包

文章目录 Debian 介绍1、执行命令2、语言选择3、修改设置 Debian 介绍 Debian是一种自由开源的操作系统&#xff0c;被广泛用于服务器、个人计算机和嵌入式设备。它是由全球志愿者组成的开发团队开发和维护的&#xff0c;以稳定性、安全性和自由性而闻名。 以下是一些关于Deb…

分块矩阵知识点整理:

1.分块方法&#xff1a;横竖线不能拐弯&#xff0c;思想为将矩阵分块看作向量计算 2.标准型 不一定是方的 特殊性&#xff1a;经过分块后会出现单位矩阵和0矩阵 3.分块矩阵的运算: 1.加减乘的运算与向量运算相同 4.分块矩阵求转置&#xff1a; 1.将子块看作普通元素求转置 2…

2017年4月10日 Go生态洞察:开发者体验工作组介绍

&#x1f337;&#x1f341; 博主猫头虎&#xff08;&#x1f405;&#x1f43e;&#xff09;带您 Go to New World✨&#x1f341; &#x1f984; 博客首页——&#x1f405;&#x1f43e;猫头虎的博客&#x1f390; &#x1f433; 《面试题大全专栏》 &#x1f995; 文章图文…

计算机应用基础_错题集_PPT演示文稿_操作题_计算机多媒体技术操作题_文字处理操作题---网络教育统考工作笔记007

PPT演示文稿操作题 提示:PPT部分操作题 将第2~第4张幻灯片背景效果设为渐变预置的“雨后初晴”效果(2)设置幻灯片放映方式

HTTP/2:多路复用、服务器推送和首部压缩的革命

&#x1f90d; 前端开发工程师&#xff08;主业&#xff09;、技术博主&#xff08;副业&#xff09;、已过CET6 &#x1f368; 阿珊和她的猫_CSDN个人主页 &#x1f560; 牛客高级专题作者、在牛客打造高质量专栏《前端面试必备》 &#x1f35a; 蓝桥云课签约作者、已在蓝桥云…

【小沐学写作】免费在线AI辅助写作汇总

文章目录 1、简介2、文涌Effidit&#xff08;腾讯&#xff09;2.1 工具简介2.2 工具功能2.3 工具体验 3、PPT小助手&#xff08;officeplus&#xff09;3.1 工具简介3.2 使用费用3.3 工具体验 4、DeepL Write&#xff08;仅英文&#xff09;4.1 工具简介4.2 工具体验 5、天工AI…

Linux学习记录

Linux 文章目录 LinuxLinux发行版Debian 分支Red Hat 分支Arch Linux 分支 服务器基础操作lscat和less设置权限删除文件和目录搜索文件 cmake使用文件 Linux发行版 一个典型的 Linux 发行版除了 Linux 内核以外&#xff0c;通常还会包括一系列 GNU 工具和库、一些附带的软件、…

单片机AT89C51直流电机控制电路PWM设计

wx供重浩&#xff1a;创享日记 对话框发送&#xff1a;直流电机 获取论文报告源码源程序原理图 此文将介绍一种直流电机&#xff0c;详细阐述了用单片机输出口所给占空比的不同实现电机的调速的设计方法&#xff1b;着重讨论L298用于电机驱动时特有的优势。直流电机调速具有…