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

Spring-Mybatis 2.0

前言:

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

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

正片:

基于springBoot——maven项目

第一步:安装依赖

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

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

pop.xml文件

<?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

第二步:根据自身内容添加数据库
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>标签内添加以下代码

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

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

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

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

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

@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写起来顺手,写错。。。。。

@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.kler.cn/a/460866.html

相关文章:

  • Servlet解析
  • ceph文件系统
  • TVS二极管选型【EMC】
  • OpenLinkSaas使用手册-待办事项和通知中心
  • 迅为RK3568开发板编译Android12源码包-设置屏幕配置
  • STM32 + 移远EC800 4G通信模块数传
  • 【C语言】可移植性陷阱与缺陷(一):应对C语言标准变更
  • 单元测试3.0+ @RunWith(JMockit.class)+mock+Expectations
  • PyTorch快速入门教程【小土堆】之网络模型的保存和读取
  • MAC系统QT Creator的快捷键
  • 运维人员的Python详细学习路线
  • JVM之Class文件详解
  • 【前端】Node.js使用教程
  • 《Vue进阶教程》第三十一课:ref的初步实现
  • 2025元旦源码免费送
  • 探索数据之美,Plotly引领可视化新风尚
  • 代码随想录算法训练营DAY17
  • Rust日志库tklog0.2.9—支持混合时间文件大小备份模式
  • windows下VS release调试
  • Stm32小实验1
  • 【GIS教程】高程点制作DEM并使用ArcgisPro发布高程服务Elevation Layer
  • win32汇编环境下,双击窗口程序内生成的listview列表控件的某行,并提取其内容的示例程序
  • Nmap实用语法简介
  • 使用WebRTC进行视频通信
  • 基于SC-FDE单载波频域均衡MQAM通信链路matlab仿真,包括帧同步,定时同步,载波同步,MMSE信道估计等
  • 在windows上使用vscode和cmake编译c++ 过程记录