7.从零开始学springboot-整合mybatis-annotations注解方式

BOM对比工具实战:基于Python与Pandas的物料清单差异分析方案 在制造业与电子设计领域,物料清单(BOM)是产品数据的核心载体,其版本管理直接影响成本控制与生产效率。BOM对比的核心原理在于通过关键标识列(如料号)进行数据匹配,识别物料的新增、删除与属性变更。这一技术价值在于将繁琐的人工核对自动化,大幅提升准确性与工作效率。其典型应用场景包括设计版本迭代、供应商替代料评估以及BOM与库存清单核对。本文聚焦的BOM差异对比工具,正是为了解决从SolidWorks、Allegro等专业软件导出BOM表后的对比痛点,通过Python与Pandas库实现灵活、强大的数据处理与自 阅读详情

前言

前章讲了下springboot使用JPA的当时连接mysql,本章我们来重点学习下mybatis连接数据库,为何重点讲这个?当然是因为流行、好用、用的人多!!

mybatis操作mysql又分两种方式,一种是注解,一种是mapper.xml文件。本章着重于注解方式的使用,因为比较简单。至于xml方式,下一章会讲。

创建一个空项目

好的,如果你和博主一步一步做的话,对这个流程应该无比的熟悉了,还是用IDEA无比流畅的创建出一个springboot空项目,依赖依旧手动加载。

添加依赖

打开pom.xml,添加如下依赖:

 <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>2.0.0</version>
        </dependency>

        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <scope>runtime</scope>
        </dependency>

如图
1.png

记住这三个依赖,因为,接下来的几乎所有的案例都会99%有这三个依赖。实际开发中更是如此。

添加配置

老规矩,更改application.properties为application.yml,添加内容:

spring:
  datasource:
    url: jdbc:mysql://192.168.145.131:3306/test?useUnicode=true&characterEncoding=UTF-8&useSSL=false&autoReconnect=true&failOverReadOnly=false&serverTimezone=GMT%2B8
    username: root
    password: 123456
    driver-class-name: com.mysql.cj.jdbc.Driver

建库

创建test库建表:

CREATE TABLE `person` (
  `id` int(11) NOT NULL,
  `name` varchar(255) DEFAULT NULL,
  `age` int(11) DEFAULT NULL,
  PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;

INSERT INTO `person` VALUES ('1', '1', '1');
INSERT INTO `person` VALUES ('2', '2', '2');
INSERT INTO `person` VALUES ('3', '3', '3');
INSERT INTO `person` VALUES ('4', '4', '4');
INSERT INTO `person` VALUES ('5', '5', '5');
INSERT INTO `person` VALUES ('6', '6', '6');
INSERT INTO `person` VALUES ('7', '7', '7');
INSERT INTO `person` VALUES ('8', '8', '8');
INSERT INTO `person` VALUES ('9', '9', '9');
INSERT INTO `person` VALUES ('10', '10', '10');
INSERT INTO `person` VALUES ('11', '11', '11');

表记录自行添加几条吧

完善

右键包创建如图所示的package和class文件

2.png

controller/DemoController:

package com.mrcoder.sbmannotations.controller;
import com.mrcoder.sbmannotations.domain.Demo;
import com.mrcoder.sbmannotations.service.DemoService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import java.util.ArrayList;

@RestController
public class DemoController {
    @Autowired
    private DemoService demoService;

    @RequestMapping(value = "/person/{id}", method = RequestMethod.GET)
    public Demo getPersonById(@PathVariable int id) {
        return demoService.getPersonById(id);
    }

    @RequestMapping(value = "/person", method = RequestMethod.GET)
    public ArrayList<Demo> getPersonList() {
        return demoService.getPersonList();
    }
}

dao/DemoDao:

package com.mrcoder.sbmannotations.dao;
import com.mrcoder.sbmannotations.domain.Demo;
import org.apache.ibatis.annotations.*;
import java.util.ArrayList;

@Mapper
public interface DemoDao {
    @Select("select * from person where id = #{id}")
    // 返回 Map 结果集
    @Results({
            @Result(property = "id", column = "id"),
    })
    Demo getPersonById(@Param("id") int id);

    @Select("select * from person")
    ArrayList<Demo> getPersonList();

}

domain/Demo:

package com.mrcoder.sbmannotations.domain;

public class Demo {
    private Integer id;
    private String name;
    private Integer age;

    public Integer getId() {
        return id;
    }

    public void setId(Integer id) {
        this.id = id;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public Integer getAge() {
        return age;
    }

    public void setAge(Integer age) {
        this.age = age;
    }

    @Override
    public String toString() {
        return
                "id=" + id +
                        ", name='" + name + '\'' +
                        ", age=" + age
                ;
    }
}

service/DemoService:

package com.mrcoder.sbmannotations.service;

import com.mrcoder.sbmannotations.domain.Demo;

import java.util.ArrayList;

public interface DemoService {
    Demo getPersonById(int id);
    ArrayList<Demo> getPersonList();
}

service/impl/DemoService:

package com.mrcoder.sbmannotations.service.impl;

import com.mrcoder.sbmannotations.dao.DemoDao;
import com.mrcoder.sbmannotations.domain.Demo;
import com.mrcoder.sbmannotations.service.DemoService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import java.util.ArrayList;

@Service
public class DemoServiceImpl implements DemoService {
    @Autowired
    private DemoDao demoDao;

    public Demo getPersonById(int id) {
        return demoDao.getPersonById(id);
    }

    public ArrayList<Demo> getPersonList() {
        return demoDao.getPersonList();
    }

}

运行

3.png

4.png

项目地址

https://github.com/MrCoderStack/SpringBootDemo/tree/master/sbm-annotations

https://gitee.com/MrCoderStack/MrCoderStackBlog/tree/master/sbm-annotations

Tips

windows端口占用问题解决

#找到对应端口的PID
netstat -ano|findstr "8080"

5.png

#根据PID找到程序名
tasklist|findstr "18804"

6.png

#杀死程序
taskkill /f /t /im java.exe

请关注我的订阅号

订阅号.png

SpringBoot整合MyBatis-Plus实战:从配置到高级功能详解 在Java企业级应用开发中,ORM框架是连接对象模型与关系数据库的核心组件,其核心原理是通过元数据映射将Java对象与数据库表进行关联,实现数据的持久化操作。MyBatis作为一款优秀的半自动化ORM框架,通过XML或注解配置SQL语句,在灵活性与性能之间取得了良好平衡。而MyBatis-Plus在其基础上进行了深度增强,通过提供通用的CRUD操作、强大的条件构造器以及丰富的插件体系,极大地提升了开发效率与代码质量。其技术价值在于遵循“约定大于配置”的原则,减少了大量样板代码的编写,同时保持了MyBatis 阅读详情

相关推荐

SpringBoot与MyBatis-Plus整合实战:从零构建高效数据层开发

在Java企业级应用开发中,ORM(对象关系映射)框架是连接应用与数据库的核心组件,其原理是通过将数据库表映射为Java对象,简化数据操作。MyBatis作为一款半自动化的ORM框架,在灵活性与性能之间取得了良好平衡,而MyBatis-Plus在其基础上提供了强大的增强功能,进一步提升了开发效率。这一技术组合的核心价值在于通过自动化CRUD操作、智能代码生成和内置分页插件等特性,将开发者从重复性工作中解放出来,使其更专注于复杂业务逻辑的实现。在实际应用场景中,无论是快速构建原型还是开发高并发生产系统,Spr

weixin_30735745的博客 368

mybatis相关配置和依赖

项目结构: pom.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 http://mave.

weixin_46111004的博客 4432

SpringBoot+MyBatis-Plus+Thymeleaf整合实战:社区网格化管理平台开发指南

在Java企业级应用开发中,SpringBoot作为快速构建微服务的核心框架,通过简化配置和依赖管理,极大地提升了开发效率。其核心原理是基于约定优于配置的思想,通过自动装配机制整合各类组件。结合MyBatis-Plus这一强大的ORM框架,开发者可以高效地进行数据库操作,减少重复的SQL编写工作。这种技术组合的价值在于能够快速搭建稳定、可维护的后台管理系统,尤其适用于需要精细数据管理和业务流程闭环的场景。社区网格化管理平台正是这一技术栈的典型应用,它通过将管理区域划分为网格,实现事件上报、处理和跟踪的完整流

weixin_30905133的博客 372

springboot之整合mybatis-annotation(注解方式)

本例将采用maven管理,代码托管在github上,地址:https://github.com/wolf909867753/springboot。 1。创建maven-module,properties,并在pom.xml中添加springboot依赖 project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://w

wolf909867753的专栏 7578

SpringBoot+MyBatis-Plus快速集成避坑指南

SpringBoot与MyBatis-Plus整合是Java后端开发的基础能力,其核心在于理解自动配置原理、依赖冲突机制及运行时Bean生命周期。技术价值体现在降低单表CRUD开发成本、统一SQL审计与逻辑删除语义,并支撑高并发场景下的事务一致性。典型应用场景包括微服务用户中心、内容管理后台及IoT设备数据接入层。实践中需重点关注JDK版本兼容性、MySQL字符集配置、MyBatis-Plus主键策略(如id-type: auto)与逻辑删除(@TableLogic)的底层SQL重写机制,避免因环境差异或配

lizaochengwen的专栏 429

SpringBoot+MyBatis-Plus实战:从零构建社区网格化管理平台

在Java Web开发领域,SpringBoot作为一款主流的微服务框架,以其“约定大于配置”的理念,极大地简化了企业级应用的初始搭建和开发过程。其核心原理是通过自动配置和起步依赖,快速整合Spring生态中的各种组件,让开发者能够专注于业务逻辑的实现。这一技术价值在于显著提升了开发效率,降低了项目维护成本,使得构建可独立运行、生产就绪的应用程序变得异常便捷。在实际应用场景中,SpringBoot常与MyBatis-Plus等持久层框架结合,用于开发需要高效数据操作和清晰架构的中后台管理系统,例如社区网格化

weixin_33739523的博客 392

Mybatis Annotation使用小结

Mybatis Annotation使用小结 之前一直有看过mybatis的注解使用方式,但没有去看过它的原理。今天看springboot-mybatis-annotation使用的时候,debug了下看了它的加载过程。 先编写一个示例接口 @Mapper // 标志为 Mybatis 的 Mapper public interface CityDao { /** * 根据城...

weixin_33958366的博客 294

Spring Boot整合MyBatis-Plus:从配置到实战,提升开发效率

在Java后端开发中,ORM框架是连接应用与数据库的核心组件,它通过对象关系映射简化了数据操作。MyBatis作为一款流行的半自动化ORM框架,提供了灵活的SQL编写能力,但其XML配置和重复的CRUD代码常带来开发负担。MyBatis-Plus作为MyBatis的增强工具,在保留MyBatis所有特性的基础上,通过内置通用Mapper、条件构造器、分页插件等核心机制,实现了单表CRUD操作的零SQL编写,显著提升了开发效率与代码规范性。其技术价值在于遵循“约定大于配置”的原则,与Spring Boot的自

weixin_33724570的博客 433

mybatis简单运用(基于Annotation)

本文主要介绍了如何使用mybatis进行简单的数据库操作。本文使用的是mybatis3.05。 1.创建数据库表(User表) CREATE TABLE `NewTable` (`userId` bigint(20) NOT NULL AUTO_INCREMENT

spiyao的专栏 560

Spring Boot整合MyBatis-Plus实战:从环境搭建到高级特性详解

在Java后端开发中,ORM框架是连接应用与数据库、提升开发效率的核心组件。其原理在于通过对象关系映射,将数据库表与Java对象关联,自动处理SQL生成与结果集转换。MyBatis-Plus作为MyBatis的增强工具,其技术价值在于极大地简化了单表CRUD操作,并内置了分页、逻辑删除、乐观锁等开箱即用的企业级功能插件,使开发者能更专注于业务逻辑设计。在应用场景上,它尤其适合基于Spring Boot的快速开发项目,能无缝对接如ShardingSphere等分布式中间件。本文聚焦于Spring Boot 2

weixin_34238633的博客 548

IDEA 2020创建SpringBoot项目全流程:从环境配置到MyBatis-Plus集成

Spring Boot作为Java领域主流的微服务框架,其核心在于简化配置、快速构建独立的生产级应用。其原理基于约定大于配置和自动装配,通过Starter依赖和嵌入式Servlet容器,极大地提升了开发效率与部署便捷性。这一技术价值在于让开发者能专注于业务逻辑,而非繁琐的环境搭建。其典型应用场景包括构建RESTful API、微服务架构以及企业级后台管理系统。本文聚焦于在IntelliJ IDEA 2020这一经典IDE环境中,如何高效搭建一个功能完备的SpringBoot项目。我们将深入探讨Maven依赖

weixin_33984032的博客 656

springboot整合mybatis(一)入门

mybatis

xiatianit的博客 3026

MyBatis

持久层。

郭宝的博客 508

Spring Boot整合MyBatis

文章目录一、数据库准备1、创建数据库blog2、创建文章表3、给文章表插入数据4、创建评论表5、给评论表插入数据二、项目实现1、创建项目文件2、创建评论实体类3、创建文章实体类4、编写配置文件(1)在全局配置文件中进行数据库连接配置(2)设置数据源类型配置(3)在全局配置文件里覆盖默认参数5、使用注解方式整合MyBatis(1)创建Mapper接口(2)在测试类编写测试方法(3)运行测试方法(4)编写测试方法,查看结果6、使用配置文件方式整合MyBatis(1)创建Mapper接口文件(2)创建映射器配置文

qq_48838980的博客 368

AI大模型学习(14)AI 小白入门!用 OpenCV+Python 打造人体姿态识别系统,超详细教程来了

这篇教程介绍了如何使用Python+OpenCV+MediaPipe搭建入门级人体姿态识别系统。主要内容包括:人体姿态识别的应用场景(如健身APP、体感游戏)、开发环境搭建(安装Python、OpenCV和MediaPipe库)、核心代码实现(通过30行代码完成摄像头姿态检测),以及进阶功能开发(深蹲动作纠正算法和PPT体感控制器)。教程详细解析了MediaPipe的BlazePose模型架构和33个关键点的生理学意义,并提供了多线程优化等性能提升方案。该项目适合AI初学者实践,无需复杂算法即可实现实时人体

isoft888的专栏,致力于C#/python分享物联网、大数据,神经网络的等领域,欢迎讨论交流! 1549

从48V到800V:TI BMS芯片如何应对高压电池管理挑战?

电池管理系统是电动汽车和储能系统的核心,负责监控电池状态、保障安全并优化性能。其核心原理在于通过高精度测量电池电压、电流和温度,结合算法估算电池的荷电状态与健康状态,从而实现精准的能量管理与寿命预测。在技术价值层面,高精度测量能最大化利用电池化学窗口,提升能量密度与续航里程;而符合功能安全标准的设计则是防止热失控等安全事故的基石。随着汽车电气化从48V轻混系统向400V/800V高压平台演进,BMS面临着测量精度、功能安全、高压隔离通信和系统成本等多重挑战。德州仪器的BQ796xx和BQ75614系列芯片,

weixin_27017211的博客 340

SpringBoot实战入门:3小时构建整合MyBatis-Plus与Redis的Web服务

SpringBoot作为Java后端开发的主流框架,其核心原理在于通过自动配置和约定大于配置的理念,极大简化了传统Spring应用的初始搭建和开发过程。这项技术通过内嵌Web服务器和Starter依赖,实现了项目的快速启动与组件集成,显著提升了开发效率。其技术价值在于为开发者提供了一套标准化的、开箱即用的企业级应用开发方案,尤其适用于快速构建微服务、RESTful API以及数据驱动的Web应用。本文聚焦于**SpringBoot实战入门**,通过一个具体的**项目创建与初始化**案例,串联MyBatis-

weixin_33778544的博客 353

STMCubeMX使用TB6612驱动编码轮并进行测速

TB6612电机驱动模块通过IN1和IN2引脚控制电机的旋转方向,并通过PWM信号的占空比调节电机速度。代码示例展示了如何使用GPIO控制电机的正反转,以及如何动态调整PWM占空比实现速度控制。系统设计中,TB6612与编码减速电机连接,STM32CubeMX用于初始化GPIO和PWM输出。编码器接口配置使用TIM3进行测速,TIM4定时器用于速度计算。Keil软件中编写的代码包括编码轮计数值获取、速度计算、电机正反转控制以及小车运动控制等功能。通过OLED显示速度,并实现电机的调试与测试。

wwivn的博客 2258

SpringBoot整合MyBatis-Plus:从零到生产级CRUD与高级特性实战

在Java后端开发中,ORM框架是连接应用与数据库的核心组件,它通过对象关系映射简化数据操作。MyBatis作为一款半自动化的持久层框架,以其灵活性和对SQL的精准控制而广受欢迎。在此基础上,MyBatis-Plus作为一款强大的增强工具,通过提供通用CRUD、条件构造器、分页插件等开箱即用的功能,极大地提升了开发效率,实现了“用更少的代码做更多的事”的技术价值。其内置的字段加解密、逻辑删除、多租户等生产级特性,使其广泛应用于需要快速构建、易于维护的企业级应用场景。本文聚焦于如何将MyBatis-Plus丝

weixin_30587927的博客 445

YOLO11涨点优化:小目标检测 | 多头检测器提升小目标检测精度

引入多头检测器助力YOLO11,添加一个微小物体的检测头暴力提升小目标检测性能

①答疑群聊服务;②YOLO大模型知识问答系统;③计算机视觉论文生成智能体; 4742

Vue/React动态页面爬取:不用Playwright也能抓全数据的3个JS逆向技巧(附Python代码)

Vue/React动态页面的爬取核心是“绕过渲染,直达数据”:90%的场景下,API接口或初始数据足以满足需求,Playwright等渲染工具只应作为“最后手段”(如无API、参数加密极复杂)。记住:爬虫的效率与“模拟真实浏览器的程度”成反比——越少模拟浏览器,效率越高。掌握JS逆向技巧,既能避开Playwright的性能坑,又能提升爬虫的抗反爬能力,这才是动态页面爬取的最优解。

专注于Python爬虫开发,分享爬虫技巧、项目实战与反爬经验,使用Scrapy、BeautifulSoup等工具,解决数据抓取难题。 1597

SpringBoot笔记系列:(九)SpringBoot整合使用mybatis

springboot整合使用mybatis 1.pom文件引入 &lt;!-- mybatis 依赖 --&gt; &lt;dependency&gt; &lt;groupId&gt;org.mybatis.spring.boot&lt;/groupId&gt; &lt;artifactId&gt;mybatis-spring-boot-starter&lt;/artifa...

潘超博客 430

LangGraph-StateGraph 和 Graph API 源码分析

摘要: StateGraph是LangGraph的核心API,用于构建有状态工作流图。本文分析了其实现原理,包括: 核心类关系:StateGraph(构建器)和CompiledStateGraph(继承自Pregel的可执行图) 关键流程:状态模式到通道的映射、节点到PregelNode的转换 实现特点: 支持TypedDict和Pydantic两种状态模式 自动选择通道类型(LastValue或BinaryOperatorAggregate) 通过映射函数处理节点输入输出 边实现基于通道写入机制 编译过程

838
上一篇: 6.从零开始学springboot-连接数据库的几种方式-JDBC
下一篇: 8.从零开始学springboot-整合mybatis-代码生成器-xml方式案例
码哥说
博客等级 码龄8年 5645粉丝 172原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

码哥说

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值