JavaEE进阶--mybatis使用测试日志参数传递浏览器访问

news2024/12/24 19:46:34

文章目录

  • 1.项目创建
  • 2.mybatis的使用
    • 2.1创建初始页面
    • 2.2补充yml文件
    • 2.3navicate表
    • 2.4用户类的编写
    • 2.5查询接口
    • 2.6运行测试
  • 3.细节说明
    • 3.1java开发规范
    • 3.2关于包
    • 3.3持久层代码
  • 4.测试文件
    • 4.1如何生成
    • 4.2生成位置
    • 4.3补充方法
  • 5.配置mybatis日志
  • 6.参数传递
    • 6.1单个参数
    • 6.2多个参数
  • 7.参数的重命名
  • 8.通过浏览器访问

1.项目创建

之前的学习过这个mybatis相关的这个入门的知识,但是又太久没有使用了,所以今天又重新熟悉了一下,这个项目的创建就是选择的这个springboot下面的这个maven项目,这个项目里面我们需要引入这个spring web和这个lombok以及我们的mysql driven即驱动,然后就是他的mybatis framework这个框架,直接创建即可;

我们的这个mybatis区别于这个传统的这个JDBC链接主要是因为我们的这个

2.mybatis的使用

2.1创建初始页面

下面的这个就是我们的项目页面,但是最开始我们的这个项目啊里面只会有这个pom.xml配置文件和我们的这个resource下面的这个application配置文件,我自己是在这个地方把我们的配置文件修改成为了这个yml配置文件;

image-20241223194321855

2.2补充yml文件

我们需要按照这个yml文件的这个具体的语法进行指定,其中这个用户名和密码就是我们的数据库的信息,而且这个url里面的这个3306后面的就是我们的数据库的名字,其他的内容都是不变的,我们直接cv即可;

image-20241223194632619

2.3navicate表

因为我们的这个mybatis针对于这个数据库进行操作,但是前提还是你的这个数据库里面需要有东西,对把,所以我自己就是在这个navicate这个工具里面使用下面的这个表进行操作;

image-20241223194802351

2.4用户类的编写

下面的这个就是我们在这个src下面新建包包model,这个里面写上我们的这个userinfo的相关的信息,也就是我们上面的这个数据库里面的这个表的相关的这个属性,使用对应的数据类型,其中这个里面的创建时间和修改时间属于我们的规范,在下面是会进行说明的;

image-20241223194918606

2.5查询接口

我们在目录下面新建接口,里面的就是进行查询的相关的方法,我们的这个接口外面添加上这个mapper注解,里面的这个list就是我们想要打印的基本数据单元(每一个用户的信息都是一个list);

@select注解后面的这个内容就是我们的SQL语句,表示的就是对于我们的用户表进行查询;

image-20241223195111382

2.6运行测试

在这个项目里面有这个test类,我们点进去之后创建我们的这个接口的对象,并且在这个contextLoad方法里面去调用我们的接口里面的查询语句,把这个结果进行打印输出即可;

image-20241223195312278

运行之后,我们发现打印的内容正是我们的数据库里面的用户表里面的用户的相关的信息:

image-20241223195441470

3.细节说明

3.1java开发规范

image-20241223191706616

delete_flag:删除的标志

1)物理删除:就是delete删除方法;

2)逻辑删除:就是update进行更新,但是原来的这个数据其实还是存在的,只不过被更新掉了,原来的数据还是会保留的;

3.2关于包

日期类型使用的是Date是我们的这个util包下面的,而不是sql下面的;

3.3持久层代码

我们的这个mapper就是持久层,我们可以新建这个mapper包:

image-20241223200232983

下面的这个12行使方法的实现;(xml实现或者注解的方式实现)注解的方式对于简单的查询更加常用,我们这个地方使用的是注解的方式;

13行是我们的方法的声明;

image-20241223200108144

4.测试文件

4.1如何生成

我们上面使用的是我们的这个test里面的这个测试文件,下面的这个是我们自己生成的测试文件:

首先就是在我们的mapper下面生成这个generate

image-20241223202711098

选择这个里面的test

image-20241223202730009

对于下面的这个选项进行勾选:

image-20241223202628953

4.2生成位置

image-20241223205045359

添加注解:下面的这个注解就是我们的spring的运行的环境;

image-20241223205225082

4.3补充方法

16行:加载spring的运行环境;

17行三角号:执行所有的测试方法;

33行:执行当前的这个测试的方法;

我们在这个20行创建我们的这个mapper;

15行的这个注解就是为了我们去打印这个日志准备的;

image-20241223205554607

关于:我们的这个测试文件里面有这个setup和teardown,我们打印的这个日志里面可以看出来,这个setup是在我们的这个测试文件之前进行打印的,而这个teardown是在我们的这个查询内容之后进行打印的;

image-20241223205920634

5.配置mybatis日志

需要在我们的yml里面添加上下面的这个内容,我们的日志为方便我们查看这个相关的错误信息;

image-20241223210211848

下面就是我们的输出的这个日志内容:输入内容和输出内容

前面的两行的这个箭头朝右边,表示的是我们的查询语句和我们的参数(我们的这个里面暂时是没有涉及到参数的);

后面的这个箭头的方向发生了变化,这个打印的就是我们的输出的信息;

image-20241223210138110

下面这个日志就说明我们的这个sql语句是有问题的,方便我们快速的定位问题;

image-20241223210358589

6.参数传递

6.1单个参数

当只有一个参数的时候,我们的注解里面的这个#{}里面的内容可以和我们的参数名字是一样的,也可以是不一样的;

image-20241223211431791

我们接着生成这个测试文件:传递这个id参数,我们就会发现查询到指定的信息;

image-20241223211526979

6.2多个参数

当涉及到多个参数的时候:我们的这个参数的名字必须一样,否则就会报错;

image-20241223211747861

这个结果也是可以查询出来的:

image-20241223211809781

7.参数的重命名

把userid参数绑定到了这个id,因此我们可以在这个注解里面使用这个重命名之后的这个名字,也就是id;

image-20241223212126244

书用这个param绑定之后,原来的这个名字就不可以使用了;

1)默认是方法的参数名字;

2)使用param重命名之后,使用重命名之后的名字;

8.通过浏览器访问

我们上面的这些都是使用的测试用例,如果哦我们想要通过浏览器路径进行访问,这个时候需要新建包包:

controller使用注入的service:

image-20241223214313980

service使用注入的mapper:

image-20241223214343156

我们上面的这些都是使用的测试用例,如果哦我们想要通过浏览器路径进行访问,这个时候需要新建包包:

controller使用注入的service:

image-20241223214313980

service使用注入的mapper:

image-20241223214343156

然后我们使用controller里面的这个路径进行访问就可以在数据库里面查询到对应的结果;

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

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

相关文章

IDEA用jformdesigner插件做管理系统MVC架构

在 IntelliJ IDEA 中结合 JFormDesigner 插件,通过 Swing 框架实现一个管理系统的 MVC 架构是一种经典的开发方式。以下是具体的步骤和实现思路,包含从项目创建到 MVC 架构的核心代码实现。 1. 项目结构设计 为了清晰的 MVC 分层架构,建议按…

学习Cookie 提升

目录 Cookie 的覆盖​​​​​​​ Cookie下的path 特点 设置Cookie 路径 实例 Cookie的最大存活时间 设置Cookie 存活时间 实例 Cookie 和session的区别 和联系 Cookie 的覆盖 当 key相同 和只要path的上级目录的路径相同,就可以被替换掉 value 值 如下图…

021、深入解析前端请求拦截器

目录 深入解析前端请求拦截器: 1. 引言 2. 核心实现与基础概念 2.1 基础拦截器实现 2.2 响应拦截器配置 3. 实际应用场景 3.1 完整的用户认证系统 3.2 文件上传系统 3.3 API请求缓存系统 3.4 请求重试机制 3.5 国际化处理 4. 性能优化实践 4.1 请求合并…

4、mysql高阶语句

mysql高阶语句是对复杂的条件进行查询的操作。 排序—order by 加了desc表示由大到小 1、查询name和score,地址都是云南西路的按id进行由小到大排序 2、查询name和score,先按hobbid进行排序,再把结果按id进行排序 第一段字段必须要有相同的…

叉车作业如何确认安全距离——UWB测距防撞系统的应用

叉车在工业环境中运行,常常需要在狭窄的空间内完成货物的搬运和堆垛,这对操作员的技术水平和安全意识提出了极高的要求。传统的叉车作业依赖操作员的经验和视觉判断来确认安全距离,然而这种方式往往存在误差,特别是在视线受阻或光…

LLaVA 多模态大模型:两阶段训练,实现视觉与语言模态的高效融合

LLaVA 多模态大模型:两阶段训练,实现视觉与语言模态的高效融合 论文大纲理解确认目标分析过程实现步骤效果展示金手指 结构分析1. 层级结构分析叠加形态(从基础到高级)构成形态(部分到整体)分化形态&#x…

PostgreSQL 的历史

title: PostgreSQL 的历史 date: 2024/12/23 updated: 2024/12/23 author: cmdragon excerpt: PostgreSQL 是一款功能强大且广泛使用的开源关系型数据库管理系统。其历史可以追溯到1986年,当时由加州大学伯克利分校的一个研究团队开发。文章将深入探讨 PostgreSQL 的起源、…

台球助教平台系统开发APP和小程序信息收藏功能需求解析(第十二章)

以下是开发台球助教系统客户端(APP,小程序,H5)几端的信息收藏功能的详细需求和功能说明,内容比较详细,可以说是一个教科书式的详细说明了,这套需求说明不仅仅用在我们的台球助教系统程序上&…

SRE 与 DevOps记录

flashcat https://flashcat.cloud

Linux Shell 脚本编程基础知识篇—shell 运算命令详解

ℹ️大家好,我是练小杰,本文继续Linux shell脚本编程的基础知识内容,接着讲算术运算命令的详细操作~~ 复习:【shell简介以及基本操作】 更多Linux 相关内容请点击👉“Linux专栏”~ 文章目录 let运算命令的用法let 的高…

2002 - Can‘t connect to server on ‘192.168.1.XX‘ (36)

参考:2002 - Can‘t connect to server on ‘192.168.1.XX‘ (36) ubantu20.04,mysql5.7.13 navicat 远程连接数据库报错 2002 - Can’t connect to server on ‘192.168.1.61’ (36) 一、查看数据库服务是否有启动,发现有启动 systemctl status mysql…

GitCode 光引计划投稿|MilvusPlus:开启向量数据库新篇章

在人工智能和大数据时代,向量数据库作为处理非结构化数据的核心技术,正变得越来越重要。MilvusPlus,作为「光引计划」的一部分,应运而生,旨在提供一个高性能、易扩展、全功能的向量数据库解决方案。项目背景根植于对现…

一起学Git【第四节:添加和提交文件】

通过前三节的学习,基本上对Git有了初步的了解,下面开始进行文件的添加和提交的流程。 这里主要涉及四个命令: git init 创建仓库git status查看仓库状态git add添加至暂存区git commit提交文件之前已经使用过git init命令了,此处不再具体讲解。参照一起学Git【第二节:创建…

RISC-V架构的压缩指令集介绍

1、压缩指令集介绍 RISC-V的压缩指令集(C扩展)‌是一种设计用于减少代码大小和提高性能的技术。标准的RISC-V指令是32位,压缩指令集可以将部分32位的指令用16位的指令替代,从未减小程序占用存储空间的大小,提高指令密…

CosyVoice安装过程详解

CosyVoice安装过程详解 安装过程参考官方文档 前情提要 环境:Windows子系统WSL下安装的Ubunt22.4python环境管理:MiniConda3git 1. Clone代码 $ git clone --recursive https://github.com/FunAudioLLM/CosyVoice.git # 若是submodule下载失败&…

docker 容器的基本使用

docker 容器 一、docker是什么? 软件的打包技术,就是将算乱的多个文件打包为一个整体,打包技术在没有docker容器之前,一直是有这种需求的,比如上节课我把我安装的虚拟机给你们打包了,前面的这种打包方式是…

【计算机视觉基础CV-图像分类】05 - 深入解析ResNet与GoogLeNet:从基础理论到实际应用

引言 在上一篇文章中,我们详细介绍了ResNet与GoogLeNet的网络结构、设计理念及其在图像分类中的应用。本文将继续深入探讨如何在实际项目中应用这些模型,特别是如何保存训练好的模型、加载模型以及使用模型进行新图像的预测。通过这些步骤,读…

被裁20240927 --- 嵌入式硬件开发 前篇

前篇主要介绍一些相关的概念,用于常识扫盲,后篇开始上干货! 他捧着一只碗吃过百家的饭 1. 处理器芯片1.1 处理器芯片制造商一、 英特尔(Intel)二、 三星(SAMSUNG)三、 高通(Qualcomm…

【uni-app】2025最新uni-app一键登录保姆级教程(包含前后端获取手机号方法)(超强避坑指南)

前言: 最近在配置uni-app一键登录时遇到了不少坑,uni-app的配套文档较为混乱,并且有部分更新的内容也没有及时更改在文档上,导致部分开发者跟着uni-app配套文档踩坑!而目前市面上的文章质量也层次不齐,有的…

C# 范围判断函数

封装范围函数 public static class CommonUtil {/// <summary>/// 范围判断函数&#xff0c;检查给定的值是否在指定的最小值和最大值之间。/// 例如&#xff0c;可以用来判断当前日期是否在开始日期和结束日期之间。/// 该方法适用于任何实现了 IComparable 接口的类型…