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

湖南网站推/微信朋友圈广告投放代理

湖南网站推,微信朋友圈广告投放代理,wordpress 分类文章列表分页,网站导航html文章目录 一. 什么是MyBatis二. MyBatis操作数据库步骤(使用注解)创建工程创建数据库创建对应实体类配置数据库连接字符串写持久层代码单元测试 三. MyBatis基础操作 使用注解打印日志参数传递增删改查 一. 什么是MyBatis 简单来说 MyBatis 是更简单完成程序和数据库交互的框架…

文章目录

  • 一. 什么是MyBatis
  • 二. MyBatis操作数据库步骤(使用注解)
    • 创建工程
    • 创建数据库
    • 创建对应实体类
    • 配置数据库连接字符串
    • 写持久层代码
    • 单元测试
  • 三. MyBatis基础操作 使用注解
    • 打印日志
    • 参数传递

一. 什么是MyBatis

在这里插入图片描述
在这里插入图片描述
简单来说 MyBatis 是更简单完成程序和数据库交互的框架,也就是更简单的操作和读取数据库⼯具

二. MyBatis操作数据库步骤(使用注解)

在这里插入图片描述

创建工程

创建springboot⼯程,并导⼊ mybatis的起步依赖、mysql的驱动包
在这里插入图片描述
Mybatis 是⼀个持久层框架, 具体的数据存储和数据操作还是在MySQL中操作的, 所以需要添加MySQL驱动
在这里插入图片描述

创建数据库

CREATE TABLE `userinfo` (`id` int(11) NOT NULL AUTO_INCREMENT,`username` varchar(127) NOT NULL,`password` varchar(127) NOT NULL,`age` tinyint(4) NOT NULL,`gender` tinyint(4) DEFAULT '0' COMMENT '1-男 2-女 0-默认',`phone` varchar(15) DEFAULT NULL,`delete_flag` tinyint(4) DEFAULT '0' COMMENT '0-正常, 1-删除',`create_time` datetime DEFAULT CURRENT_TIMESTAMP,`update_time` datetime DEFAULT CURRENT_TIMESTAMP,PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=5 DEFAULT CHARSET=utf8mb4;

创建对应实体类

在这里插入图片描述

配置数据库连接字符串

spring:datasource:url: jdbc:mysql://127.0.0.1:3306/mybatis_test?characterEncoding=utf8&useSSL=falseusername: rootpassword: rootdriver-class-name: com.mysql.cj.jdbc.Driver

修改数据库名称, 密码即可

写持久层代码

在这里插入图片描述
在这里插入图片描述

Mybatis的持久层接⼝规范⼀般都叫 XxxMapper

@Mapper注解:表⽰是MyBatis中的Mapper接⼝
程序运⾏时, 框架会⾃动⽣成接⼝的实现类对象(代理对象),并给交Spring的IOC容器管理

@Select注解:代表的就是select查询,也就是注解对应⽅法的具体实现内容

单元测试

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
选择想要测试的方法, 就会在Test中对应的文件帮我们创建测试方法
在这里插入图片描述

  1. 需要我们添加@SpringBootTest注解, 该测试类在运行时, 就会自动加载Spring的运行环境
  2. 通过@Autowired这个注解, 注入我们要测试的类, 就可以开始测试了
    在这里插入图片描述

在这里插入图片描述

运行成功

三. MyBatis基础操作 使用注解

打印日志

在Mybatis当中我们可以借助⽇志, 查看到sql语句的执⾏、执⾏传递的参数以及执⾏结果

mybatis:configuration: # 配置打印 MyBatis⽇志log-impl: org.apache.ibatis.logging.stdout.StdOutImpl

在这里插入图片描述

参数传递

在方法中添加参数, 将方法中的参数, 传给SQL, 在SQL语句中使用**#{ }**来接收
在这里插入图片描述
测试:
在这里插入图片描述
在这里插入图片描述

  1. 如果方法形参只有一个参数, 那么#{} 中的属性名可以随便写
  2. 如果是多个参数, 那么就要求参数名和属性名一致
    在这里插入图片描述
  3. 可以通过@Param()设置别名, 来映射到对应的属性名
    在这里插入图片描述此时, 只会按照id2来映射, id会失效

在这里插入图片描述
在这里插入图片描述
如果使用@Param
在这里插入图片描述
想要获取到自增字段:
使用@Options(useGeneratedKeys = true, keyProperty = “id”)
在这里插入图片描述
在这里插入图片描述
将JDBC的useGeneratedKeys方法拿到的数据库中生成的主键, 赋给keyProperty指定的属性中
测试:
在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
观察日志发现, 数据库将后面字段的数据传回来了, 但是在打印userInfo对象时, 却没有接收到
原因分析:
当⾃动映射查询结果时,MyBatis 会获取结果中返回的列名并在 Java 类中查找相同名字的属性(忽略
⼤⼩写)。 这意味着如果发现了 ID 列和 id 属性,MyBatis 会将列 ID 的值赋给 id 属性
但是由于规范性, 命名的时候, 字段名和属性名 不可能完全一致
** 办法一: 起别名**
在这里插入图片描述
在这里插入图片描述
成功接收
** 办法二: 结果映射**
使用@Results({@Result(column = ..., property = ...), @Result(column = ..., property = ...)...})注解, 来映射字段和属性
在这里插入图片描述
在这里插入图片描述
映射成功
但是每当我们写个sql都需要加上这个映射关系
复用映射关系:
如果其他SQL, 也希望可以复⽤这个映射关系, 可以给这个Results定义⼀个id
在这里插入图片描述
其他的sql使用@ResultMap注解来复用这个映射关系即可
在这里插入图片描述
办法三: 开启驼峰命名
加上配置:

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

在这里插入图片描述
代码中无需做任何处理
在这里插入图片描述
映射成功

相关文章:

[spring]MyBatis介绍 及 用MyBatis注解操作简单数据库

文章目录 一. 什么是MyBatis二. MyBatis操作数据库步骤(使用注解)创建工程创建数据库创建对应实体类配置数据库连接字符串写持久层代码单元测试 三. MyBatis基础操作 使用注解打印日志参数传递增删改查 一. 什么是MyBatis 简单来说 MyBatis 是更简单完成程序和数据库交互的框架…...

Ks渲染做汽车动画吗?汽车本地渲染与云渲染成本分析

Keyshot是一款强大的实时光线追踪和全域光渲染软件,它确实可以用于制作汽车动画,包括汽车模型的渲染和动画展示。Keyshot的动画功能允许用户创建相机移动、物体变化等动态效果,非常适合用于汽车动画的制作。 至于汽车动画的渲染成本&#xff…...

AI智能时代:哪款编程工具让你的工作效率翻倍?

引言 在日益繁忙的工作环境中,选择合适的编程工具已成为提升开发者工作效率的关键。不同的工具能够帮助我们简化代码编写、自动化任务、提升调试速度,甚至让团队协作更加顺畅。那么,哪款编程工具让你的工作效率翻倍?是智能的代码编…...

这五本大模型书籍,让你从大模型零基础到精通,非常详细收藏我这一篇就够了

大模型(Large Language Models, LLMs)是近年来人工智能领域的一大热点,它们在自然语言处理、对话系统、内容生成等多个方面展现出了强大的能力。随着技术的发展,市面上出现了许多介绍大模型理论与实践的书籍,为研究人员…...

面试经典150题 堆

215.数组中的第K个最大元素 建堆算法实现-CSDN博客 215. 数组中的第K个最大元素 中等 给定整数数组 nums 和整数 k,请返回数组中第 k 个最大的元素。 请注意,你需要找的是数组排序后的第 k 个最大的元素,而不是第 k 个不同的元素。 你必…...

day-62 每种字符至少取 K 个

思路 滑动窗口:改变思路,从左右两边取字符,是a b c三个字符至少被取k次,那么意味着如果我们知道字符串中a b c的出现个数,那么可以知道取走后剩下子串a b c的个数,问题转化为了求最长子串 解题过程 如果a …...

免费好用!AI声音克隆神器,超级简单,10秒就能克隆任何声音!(附保姆级教程)

今天下午还有读者问: 有没有能克隆声音的 AI 工具? 其实剪映很早就上了克隆声音的功能。 只需要按要求朗读例句,或者上传本地的音视频文件,就可以克隆声音了。 操作非常简单,效果也不错,可以试试。 除了…...

LeetCode146 LRU缓存

请你设计并实现一个满足 LRU (最近最少使用) 缓存 约束的数据结构。 实现 LRUCache 类: LRUCache(int capacity) 以 正整数 作为容量 capacity 初始化 LRU 缓存int get(int key) 如果关键字 key 存在于缓存中,则返回关键字的值,否则返回 -1 …...

【Java】包装类【主线学习笔记】

文章目录 前言包装类基本数据类型与包装类之间的转换基本数据类型转换为包装类可以通过以下几种方式:包装类转换为基本数据类型可以通过以下几种方式:初始化值不同与String之间的转换 前言 Java是一门功能强大且广泛应用的编程语言,具有跨平台…...

华为HarmonyOS地图服务 11 - 如何在地图上增加点注释?

场景介绍 本章节将向您介绍如何在地图的指定位置添加点注释以标识位置、商家、建筑等,并可以通过信息窗口展示详细信息。 点注释支持功能: 支持设置图标、文字、碰撞规则等。支持添加点击事件。 PointAnnotation有默认风格,同时也支持自定…...

uniapp js怎么根据map需要显示的点位,计算自适应的缩放scale

推荐学习文档 golang应用级os框架,欢迎stargolang应用级os框架使用案例,欢迎star案例:基于golang开发的一款超有个性的旅游计划app经历golang实战大纲golang优秀开发常用开源库汇总想学习更多golang知识,这里有免费的golang学习笔…...

Mysql 架构

目录 1.1 Mysql 逻辑架构图 1.2 SQL 的执行流程 1.3 SQL 书写顺序和执行顺序 1.4 Mysql 日志文件 1.4.1. 二进制日志(Binary Log) 1.4.2. 错误日志(Error Log) 1.4.3. 慢查询日志(Slow Query Log) 1.…...

C语言 | Leetcode C语言题解之第429题N叉树的层序遍历

题目: 题解: #define MAX_LEVE_SIZE 1000 #define MAX_NODE_SIZE 10000int** levelOrder(struct Node* root, int* returnSize, int** returnColumnSizes) {int ** ans (int **)malloc(sizeof(int *) * MAX_LEVE_SIZE);*returnColumnSizes (int *)mal…...

Python中列表常用方法

# 定义列表: # 定义一个空列表 my_list []# 定义一个包含不同类型元素的列表 my_list [1, 2, 3, a, b, c, 2.5, True]# 定义一个嵌套列表(列表中包含列表) my_list [[1, 2, 3], [a, b, c], [2.5, True]]print(my_list[0]) # [1, 2, 3]# 访问元素: my…...

『功能项目』下载Mongodb【81】

下载网址:Download MongoDB Community Server | MongoDB 点击安装即可 选择Custom 此时安装已经完成 桌面会创建图标 检查是否配置好MongoDB 输入cmd命令行 Windows键 R 打开命令行 输入cmd 复制安装路径 复制data路径 如果输出一大串代码即配置mongdb成功...

图像特征提取-SIFT

文章目录 一、定义与原理二、主要步骤三、特点与优势四、代码运用五、应用领域 图像特征提取中的SIFT(Scale-Invariant Feature Transform,尺度不变特征变换)是一种强大的局部特征提取算法,广泛应用于计算机视觉和图像处理领域。以…...

ElasticSearch分页查询性能及封装实现

Es的分页方式 fromsize 最基本的分页方式,类似于SQL中的Limit语法: //查询年龄在12到32之间的前15条数据 {"query":{"bool":{"must":{"range":{"user_age":{"gte":12,"lte":3…...

Python精选200Tips:176-180

针对图像的经典卷积网络结构进化史及可视化 P176--LeNet-5【1988】模型结构说明模型结构代码模型结构可视化 P177--AlexNet【2012】模型结构及创新性说明模型结构代码模型结构可视化 P178--VGGNet【2014】VGG19模型结构及创新性说明VGG19模型结构代码VGG19模型结构可视化 P179-…...

【Kotlin 集合概述】可变参数vararg、中缀函数infix以及解构声明(二十)

导读大纲 1.1 使用集合: vararg、infix 调用和解构声明1.1.1 扩展 Java 集合 API1.1.2 vararg: 接受任意数量参数的函数1.1.3 处理pairs: Infix 调用和解构声明 1.1 使用集合: vararg、infix 调用和解构声明 本节将介绍 Kotlin 标准库中用于处理集合的一些函数 同时,还介绍一些…...

unity安装报错问题记录

unity安装报错问题记录 今天下载了unity,一路安装下来,遇到了两个问题: Microsoft Visual Studio Community 2022 Install failed: Validation Failed 查询资料提到本机已安装,实际本机未安装。 解决了半天,大致有…...

秋招|面试|群面|求职

秋招|面试|群面|求职 自我介绍30s-1min,首先是清楚的介绍自己的名字/专业等个人信息,面试岗位,也可以介绍一下对于岗位的理解。然后介绍一下过往经历中最亮眼的几点,主要是为了突出和岗位的适配程度。群面,我觉得最重…...

【Kubernetes】日志平台EFK+Logstash+Kafka【理论】

一,日志处理方案 方案一,【EFK】:Elasticsearch Fluentd(或Filebeat) Kibana Elasticsearch(简称:ES):实时,分布式存储,可扩展,日…...

基于SpringBoot+Vue+MySQL的教学资料管理系统

系统展示 管理员后台界面 教师后台界面 系统背景 在当今信息化高速发展的时代,教育机构面临着日益增长的教学资料管理需求。为了提升教学管理的效率,优化资源的配置与利用,开发一套高效、便捷的教学资料管理系统显得尤为重要。基于SpringBoot…...

动态规划day45:编辑距离|115. 不同的子序列、583. 两个字符串的删除操作、72. 编辑距离(动规终极好题)

动态规划day45:编辑距离|115. 不同的子序列、583. 两个字符串的删除操作、72. 编辑距离(动规终极好题) 115. 不同的子序列583. 两个字符串的删除操作72. 编辑距离(动规终极好题) 115. 不同的子序列 给你两个字符串 s 和 t ,统计并返回在 s 的 子序列 中…...

剑指 offer 刷题集

目录 数组 1. LCR 121. 寻找目标值 - 二维数组 2. LCR 120. 寻找文件副本 3. LCR 128. 库存管理 I 4. LCR 131. 砍竹子 I 5. LCR 132. 砍竹子 II 6. LCR 135. 报数 7. LCR 139. 训练计划 I 8. LCR 158. 库存管理 II 9. LCR 159. 库存管理 III 10. LCR 160. 数据流中…...

C++在线开发环境搭建(WEBIDE)

C在线开发环境搭建 一、环境说明1.1 系统基础环境说明1.1 docker-ce社区版安装 二、codeserver构建2.1 构建codeserver环境的docker容器2.2 构建docker镜像2.3 运行docker2.4 运行展示 三、构建codeserver中的c开发环境3.1 插件下载3.2 插件安装 四、其他知识4.2 code-server配…...

重磅首发!大语言模型LLM学习路线图来了!

ChatGPT的出现在全球掀起了AI大模型的浪潮,2023年可以被称为AI元年,AI大模型以一种野蛮的方式,闯入你我的生活之中。 从问答对话到辅助编程,从图画解析到自主创作,AI所展现出来的能力,超出了多数人的预料&…...

neo4j关系的创建删除 图的删除

关系的创建和删除 关系创建 CREATE (:Person {name:"jack"})-[:LOVE]->(:Person {name:"Rose"})已有这个关系时,merge不起效果 MERGE (:Person {name:"Jack" })-[:LOVE]->(:Person {name:"Rose"})关系兼顾节点和关…...

【WRF运行第三期】服务器上运行WRF模型(官网案例-Hurricane Matthew)

【WRF运行第三期】运行WRF模型(官网案例-Hurricane Matthew) 官网案例-Hurricane Matthew介绍0 创建DATA文件夹1 WPS预处理1.1 解压GRIB数据(ungrib.exe)1.1.1 解压GRIB数据---GFS(Matthew案例研究数据)1.1…...

基于springboot的书店图书销售管理系统的设计与实现 (含源码+sql+视频导入教程)

👉文末查看项目功能视频演示获取源码sql脚本视频导入教程视频 1 、功能描述 基于springboot的书店图书销售管理系统拥有三个角色 管理员:用户管理、角色管理、权限管理、店铺管理等商家:图书管理、上架图书、访问量统计、销售总额统计、订单…...