Spring-Mybatis 2.0

devtools/2025/1/3 14:56:43/

前言:

第一点:过于依赖代码生成器或AI,导致基于mybaits的CRUD通通忘了,所以为了找回遗忘的记忆,有了该系列内容。

第二点:通过实践而发现真理,又通过实践而证实真理和发展真理。从感性认识而能动地发展到理性认识,又从理性认识而能动地指导革命实践,改造主观世界和客观世界。实践、认识、再实践、再认识,这种形式,循环往复以至无穷,而实践和认识之每一循环的内容,都比较地进到了高一级的程度。

正片:

基于springBoot——maven项目

第一步:安装依赖

        第一个依赖:对应数据库驱动——Mysql-Driver

        第二个依赖:JDBC框架——本系列采用Mybaits

pop.xml文件

java"><?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd"><modelVersion>4.0.0</modelVersion><parent><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-parent</artifactId><version>3.4.1</version><relativePath/> <!-- lookup parent from repository --></parent><groupId>org.example</groupId><artifactId>mybatis</artifactId><version>0.0.1-SNAPSHOT</version><name>mybatis</name><description>mybatis</description><url/><licenses><license/></licenses><developers><developer/></developers><scm><connection/><developerConnection/><tag/><url/></scm><properties><java.version>17</java.version></properties><dependencies><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency><dependency><groupId>org.mybatis.spring.boot</groupId><artifactId>mybatis-spring-boot-starter</artifactId><version>3.0.4</version></dependency><dependency><groupId>com.mysql</groupId><artifactId>mysql-connector-j</artifactId><scope>runtime</scope></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-test</artifactId><scope>test</scope></dependency><dependency><groupId>org.mybatis.spring.boot</groupId><artifactId>mybatis-spring-boot-starter-test</artifactId><version>3.0.4</version><scope>test</scope></dependency></dependencies><build><plugins><plugin><groupId>org.springframework.boot</groupId><artifactId>spring-boot-maven-plugin</artifactId></plugin></plugins></build></project>

第二步:启动项目

理论结果——产生报错

实践结果——产生报错即为成功

第三步:添加数据库配置

第一步:在Resource文件下创建启动配置文件——application.yaml

第二步:根据自身内容添加数据库
java">spring:datasource:driver-class-name: com.mysql.cj.jdbc.Driver #数据库驱动路径url: jdbc:mysql://localhost:3306/steel #数据库表路径username: root    #数据库登录账号password: 123456  #数据库登录密码server:port: 8084     #springBoot内置服务器自定义端口
第三步:运行

理论结果:无报错

实践验证:无报错

第四步:这是作者曾经常用的CRUD模板

第一步:添加实体类——对应数据库表

实体类:

为了更好使用,添加lombok框架——在pop.xml文件中的<dependencies></dependencies>标签内添加以下代码

java">        <dependency><groupId>org.projectlombok</groupId><artifactId>lombok</artifactId><scope>annotationProcessor</scope></dependency>
java">@Data
public class entity {int id;String username;String password;
}

注意:实体类中的变量名需要严格对应数据库表名!

实践认知:会尝试不必要的报错(可尝试)

第二步:添加Mapper(注解式写法)

第三步:增加XML文件 OR添加对应注解

java">@Mapper
public interface UserMapper {/*查询ID返回全部内容*/@Select("SELECT id,username,password form user_test where id =#{id}")List<entity> userByAll(int id);/*单独查询*/@Select("SELECT id,username,password form user_test where id =#{id}")entity userById(int id);
}

到了第四步,剩下的我们可以不做了,因为从第四步开始就是处理数据了

现在可以直接调用方法打印数据

1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'form steel.user_test' at line 1

报错了,是最基础的SQL报错!

问题找到了,如果你不经常写from,这个会因为form写起来顺手,写错。。。。。

java">@Mapper
public interface UserMapper {/*查询ID返回全部内容*/@Select("SELECT id,username,password from user_test where id =#{id}")List<entity> userByAll(Long[] id);/*单独查询*/@Select("SELECT id,username,password from user_test where id =#{id}")entity userById(int id);
}


http://www.ppmy.cn/devtools/147149.html

相关文章

Android学习小记2

目录 Android Manifest文件分析 1. XML声明 2. 元素 3. 元素 4. 元素 5. 元素 6. 关闭标签 7. 结束标签 res文件夹再探 drawable mipmap value color.xml strings.xml style.xml xml文件 backup_rules.xml data_extraction_rules.xml Android Manifest文件分析…

【项目实战】Apache JMeter HTTP 接口测试

Apache JMeter HTTP 接口测试脚本编写指南 在使用 JMeter 进行 HTTP 接口测试时&#xff0c;首先需要创建一个线程组以模拟用户行为。接着&#xff0c;添加 HTTP 请求&#xff0c;输入接口的 URL、路径、请求方法以及所需的参数。为了验证测试结果&#xff0c;通常会添加“查看…

FreeRTOS: ISR(中断服务例程)和 TCB(任务控制块)

在讨论 ISR&#xff08;中断服务例程&#xff09;和 TCB&#xff08;任务控制块&#xff0c;Task Control Block&#xff09;时&#xff0c;我们实际上是在探讨 FreeRTOS 中两个不同但又相互关联的概念&#xff1a;一个是用于处理硬件或软件触发的中断事件&#xff0c;另一个是…

三大行业案例:AI大模型+Agent实践全景

本文将从AI Agent和大模型的发展背景切入&#xff0c;结合51Talk、哈啰出行以及B站三个各具特色的行业案例&#xff0c;带你一窥事件驱动架构、RAG技术、人机协作流程&#xff0c;以及一整套行之有效的实操方法。具体包含内容有&#xff1a;51Talk如何让智能客服“主动进攻”&a…

如何实现分片上传功能:基于 Vue 和 iView 上传组件的详细教程

在实际开发中&#xff0c;上传大文件往往会面临一些问题&#xff0c;如上传速度慢、超时、网络中断等。为了更好地解决这些问题&#xff0c;我们可以使用分片上传技术。分片上传就是将文件拆分成多个小块进行上传&#xff0c;每个小块称为“分片”&#xff0c;上传成功后&#…

前端通过函数方法触发文件上传、限制文件类型、限制文件大小、上传的进度

包含文件列的表格 <vxe-tableref"table"border:row-config"{ isHover: true }"highlight-hover-rowalign"center"stripe:data"tableAll.data"><vxe-columntype"seq"title"序号"width"60"align…

JMeter脚本参数化与并发策略

JMeter概述 JMeter是一款基于Java的性能测试工具&#xff0c;旨在对多种服务执行负载测试。它可以帮助我们模拟高并发环境&#xff0c;通过可视化的数据展示来分析系统在压力下的表现。常见的测试场景包括Web应用、数据库、FTP、REST API等&#xff0c;通通不在话下&#xff0…

PyQt + OpenCV综合训练

一、PyQt OpenCV 图像处理应用设计 创建一个 PyQt 应用程序&#xff0c;该应用程序能够&#xff1a; ①使用 OpenCV 加载一张图像。 ②在 PyQt 的窗口中显示这张图像。 ③提供四个按钮&#xff08;QPushButton&#xff09;&#xff1a; - 一个用于将图像转换为灰度图 - …