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

IDEA搭建SpringBoot,MyBatis,Mysql工程项目

目录

一、前言

二、项目结构

三、初始化项目

四、SpringBoot项目集成Mybatis编写接口

五、代码仓库


一、前言

   构建一个基于Spring Boot框架的现代化Web应用程序,以满足[公司/组织名称]对于[业务需求描述]的需求。通过利用Spring Boot简化企业级应用开发的优势,实现一个高效、可扩展且易于维护的应用系统。

  • 提高效率:通过集成微服务架构模式,减少系统的复杂度,并加速开发周期。
  • 增强用户体验:提供一个响应迅速、界面友好且功能齐全的用户交互平台。
  • 确保数据安全:实施严格的数据保护措施,保障用户信息安全。
  • 支持跨平台访问:设计RESTful API接口,确保应用程序可以在多种设备上无缝运行。

二、项目结构

项目遵循Maven标准目录布局,主要分为以下几个模块:

  • core:包含业务逻辑层代码。

  • exception:包含各个异常捕捉类。

  • mapper:定义了数据访问对象,用于与数据库交互。

  • service:提供了对外的服务接口。

  • entity:项目实体类

  • controller:处理HTTP请求并调用相应的服务方法。

  • config:存放所有配置文件。

  • test:单元测试及集成测试代码。

  • common:公共类,统一包装。

三、初始化项目

点击新建项目

根据以下图片创建

选择框架依赖

设置文件编码统一为UTF-8

检查Maven构建项目的目录

以下pom.xml文件已经加载,如果没有出现xml文件则需右键点击构建Maven项目即可

application配置文件,因为框架中选择了数据库,使用需要配置数据库,mybatis依赖在后续集成时,可添加以下配置。

# 应用服务 WEB 访问端口
server:port: 9090
#数据库配置
spring:datasource:driver-class-name: com.mysql.cj.jdbc.Driverusername:  rootpassword: 123456//(本机数据库密码)url: jdbc:mysql://localhost:3306/userdb//(本机数据库)
//#mybatis依赖
//# mybatis:
//# MyBatis Configuration确保在 application.properties 或 application.yml 文件中指定了正确的映射文件路径// mapper-locations: classpath:mapper/*.xml// configuration://   log-impl: org.apache.ibatis.logging.stdout.StdOutImpl//   map-underscore-to-camel-case: true

到此项目配置成功! 

四、SpringBoot项目集成Mybatis编写接口

接下来我们将实现一个简单的用户列表获取接口,以下是具体的分层结构

Result类

package com.example.springboot.common;
//统一设置包装类,返回数据的类型
public class Result {private Integer code;  // 状态码private String message;  // 消息private Object data;  // 数据// 默认成功的构造方法// 成功但没有数据时的静态方法public static Result success() {Result result =new Result();result.setCode(200);result.setMessage("请求成功");return result;}public static Result success(Object data) {Result result =success();result.setData(data);return result;}// 静态方法用于快速构建结果对象public static Result error() {Result result =new Result();result.setCode(500);result.setMessage("请求成功");return result;}// Getters and Setterspublic Integer getCode() {return code;}public void setCode(Integer code) {this.code = code;}public String getMessage() {return message;}public void setMessage(String message) {this.message = message;}public Object getData() {return data;}public void setData(Object data) {this.data = data;}// 打印结果对象信息的方法(可选)@Overridepublic String toString() {return "Result{" +"code=" + code +", message='" + message + '\'' +", data=" + (data != null ? data.toString() : "null") +'}';}
}

UserController控制层提供访问接口localhost:9090/user/selectAll

package com.example.springboot.controller;import com.example.springboot.common.Result;
import com.example.springboot.service.UserService;
import com.example.springboot.entity.user;
import jakarta.annotation.Resource;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;import java.util.List;@RestController
@RequestMapping("/user")
public class UserController {
@Resourceprivate UserService userservice;
//查询所有用户@GetMapping("/selectAll")public Result selectAll(){List<user>list=userservice.selectAll();return  Result.success(list);}
}

User类实体类,需要对应相应数据库

package com.example.springboot.entity;import org.apache.ibatis.annotations.Mapper;//entity包里面装着实体类
public class user {private  String userID;private  String userName;private  String userPassword;private  Integer userAge;public String getUserID() {return userID;}public void setUserID(String userID) {this.userID = userID;}public String getUserName() {return userName;}public void setUserName(String userName) {this.userName = userName;}public String getUserPassword() {return userPassword;}public void setUserPassword(String userPassword) {this.userPassword = userPassword;}public Integer getUserAge() {return userAge;}public void setUserAge(Integer userAge) {this.userAge = userAge;}}

UserMapper接口连接数据库操作,在对应的Mybastis映射文件下,上文中的application配置文件中的路径一致,添加UserMapper.xml文件

package com.example.springboot.mapper;import com.example.springboot.entity.user;import java.util.List;//数据库userBean层
public interface UserMapper {List<user> selectAll();
}

安装插件MyBatisX可快速查看映射方法

 userMapper.xml配置文件

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapperPUBLIC "-//mybatis.org//DTD Mapper 3.0//EN""http://mybatis.org/dtd/mybatis-3-mapper.dtd"><mapper namespace="com.example.springboot.mapper.UserMapper"><!-- SQL 映射语句将在此处定义 --><select id="selectAll" resultType="com.example.springboot.entity.user">SELECT * FROM user_list</select>
</mapper>

UserService类,提供项目业务逻辑层

package com.example.springboot.service;import com.example.springboot.mapper.UserMapper;
import com.example.springboot.entity.user;
import jakarta.annotation.Resource;
import org.springframework.stereotype.Service;import java.util.List;//业务逻辑层
@Service
public class UserService {@Resourceprivate UserMapper userMapper;public List<user> selectAll() {List<user> list = userMapper.selectAll();return list;}
}

 在启动文件中添加扫描路径

@MapperScan("com.example.springboot.mapper")

 

点击运行即可!欢迎大家一起学习讨论,批评指正~

五、代码仓库

具体代码仓库

200K/SpringBooticon-default.png?t=O83Ahttps://gitee.com/tanzero/spring-boot.git

相关文章:

IDEA搭建SpringBoot,MyBatis,Mysql工程项目

目录 一、前言 二、项目结构 三、初始化项目 四、SpringBoot项目集成Mybatis编写接口 五、代码仓库 一、前言 构建一个基于Spring Boot框架的现代化Web应用程序&#xff0c;以满足[公司/组织名称]对于[业务需求描述]的需求。通过利用Spring Boot简化企业级应用开发的优势&…...

Reactor

文章目录 正确的理解发送double free问题 1.把我们的reactor进行拆分2.链接管理3.Reactor的理论 listensock只需要设置_recv_cb&#xff0c;而其他sock&#xff0c;读&#xff0c;写&#xff0c;异常 所以今天写nullptr其实就不太对&#xff0c;添加为空就没办法去响应事件 获…...

在ESP32使用AT指令集与服务器进行TCP/IP通信时,<link ID> 解释

在ESP32使用AT指令集与服务器进行TCP/IP通信时&#xff0c;<link ID> 是一个非常重要的参数。它用于标识不同的连接实例&#xff0c;特别是在多连接场景下&#xff08;如同时建立多个TCP或UDP连接&#xff09;。每个连接都有唯一的<link ID>&#xff0c;通过这个ID…...

[SZ901] JTAG合并功能(类似FPGA菊花链)

SZ901 JTAG支持将JTAG端口组合&#xff0c;最多将四个JTAG变成一个 设置如下 Vivado 识别结果如下 两块板子&#xff0c;变成一组&#xff0c;&#xff0c;可以同时抓取信号&#xff0c;调试&#xff01; SZ901 已上架淘宝&#xff0c;搜素“SZ901”哦...

paimon中的Tag

TAG 在传统数仓场景中&#xff0c;从传统数据库中导入的事实表数据一般是全量导入&#xff0c;按天分区每天都存储一份全量数据&#xff0c;paimon对此提供了Tag机制&#xff0c;创建TAG时&#xff0c;会对当前数据做一份全量快照&#xff0c;在之后对表的数据进行更新也不会影…...

3分钟读懂数据分析的流程是什么

数据分析是基于商业目的&#xff0c;有目的地进行收集、整理、加工和分析数据&#xff0c;提炼出有价值的 信息的一个过程。整个过程大致可分为五个阶段&#xff0c;具体如下图所示。 1.明确目的和思路 在开展数据分析之前&#xff0c;我们必须要搞清楚几个问题&#xff0c;比…...

uniapp入门 01创建项目模版

0安装 hbuilder x 标准版 1.创建模版工程 2.创建官方 案例工程 index.uvuewen 文件解析 <!-- 模版 标签 --> <template><view></view></template><!-- 脚本 --> <script>export default {data() {return {}},onLoad() {},methods:…...

React 19新特性探索:提升性能与开发者体验

React作为最受欢迎的JavaScript库之一&#xff0c;不断推出新版本以应对日益复杂的应用需求。React 19作为最新的版本&#xff0c;引入了一系列令人兴奋的新特性和改进&#xff0c;旨在进一步提升应用的性能、开发效率和用户体验。 本文将深入探讨React 19的新特性&#xff0c;…...

Hive是什么,Hive介绍

官方网站&#xff1a;Apache Hive Hive是一个基于Hadoop的数据仓库工具&#xff0c;主要用于处理和查询存储在HDSF上的大规模数据‌。Hive通过将结构化的数据文件映射为数据库表&#xff0c;并提供类SQL的查询功能&#xff0c;使得用户可以使用SQL语句来执行复杂的​MapReduce任…...

[LeetCode-Python版] 定长滑动窗口1(1456 / 643 / 1343 / 2090 / 2379)

思路 把问题拆解成三步&#xff1a;入-更新-出。 入&#xff1a;下标为 i 的元素进入窗口&#xff0c;更新相关统计量。如果 i<k−1 则重复第一步。更新&#xff1a;更新答案。一般是更新最大值/最小值。出&#xff1a;下标为 i−(k-1) 的元素离开窗口&#xff0c;更新相关…...

imx6ull qt多页面控制系统(正点原子imx系列驱动开发)

开题答辩完了也考完了四六级&#xff0c;赶紧来更新一下一个月前留下的坑吧 QAQ首先&#xff0c;因为毕业设计需要用到这些知识所以就从网络上找了一个智能车机系统&#xff0c;借鉴了一下大佬的项目思路&#xff0c;缝缝补补一个月终于完成了这一内容。 在这里先感谢从两位大佬…...

OCR:文字识别

使用场景: 远程身份认证 自动识别录入用户身份/企业资质信息&#xff0c;应用于金融、政务、保险、电商、直播等场景&#xff0c;对用户、商家、主播进行实名身份认证&#xff0c;有效降低用户输入成本&#xff0c;控制业务风险 文档电子化 识别提取各类办公文档、合同文件、企…...

SQL Server通过存储过程实现自定义邮件格式并定时发送

在 SQL Server 中,可以通过存储过程实现自定义邮件格式并定时发送。这通常涉及以下几个步骤: 1. 配置 Database Mail:首先需要配置 SQL Server 的 Database Mail 功能。 2. 创建存储过程:编写存储过程来生成自定义邮件格式并发送邮件。 3. 设置 SQL Server 代理作…...

【进阶编程】MVC和MVVM实现前后端分离的实现

在 WPF 开发中&#xff0c;通常使用 MVVM&#xff08;Model-View-ViewModel&#xff09;架构来分离视图和业务逻辑&#xff0c;但在某些情况下&#xff0c;你可能希望将 MVC&#xff08;Model-View-Controller&#xff09;模式与 MVVM 结合使用。这种结合有时是为了兼顾不同的架…...

HT81297 18W内置升压单声道D类音频功放

1、特征 扩频技术 输出功率 18W(VBAT3.7V, RL4Ω, THDN10%, fN 1kHz) 16W(VBAT3.7V,RL-4Ω,THDN1%,fN1kHz) 8W(VBAT3.3V,RL-8Ω,THDN1%, fN1kHz) VBAr供电范围:3.0V至12V 高效H类升压功能 -自适应功放功率的升压轨&#xff0c;延长电池播放时间 (HT81297A) -可调节最大限流值&…...

linux ipmitool配置机器的BMC(服务器管理后台)

前置&#xff1a;mgnt口和网卡1连接入内网&#xff0c;并分配静态ip 1. 安装 ipmitool Debian/Ubuntu: sudo apt-get update sudo apt-get install ipmitool CentOS/RHEL: sudo yum install ipmitool2. 配置 BMC 的 IP 地址 #打印当前ipmi 地址配置信息。 ipmitool lan p…...

【项目实战】location.href 实现文件下载

应用场景 最近在项目中看到一种新的文件下载方式,原理是将[后台地址接口地址请求参数]拼接成一个url,直接将下载任务丢给浏览器去执行.但是在需要校验token的项目中,需要后台单独给这个接口放开token校验 location.href 相关内容 window.location.protocol: 返回当前 URL 的…...

【Threejs】从零开始(十)--加载gltf模型和压缩后的模型

一.加载普通的gltf模型 glTF&#xff08;gl传输格式&#xff09;是一种开放格式的规范 &#xff08;open format specification&#xff09;&#xff0c; 用于更高效地传输、加载3D内容。该类文件以JSON&#xff08;.gltf&#xff09;格式或二进制&#xff08;.glb&#xff09;…...

国标GB28181平台EasyGBS在安防视频监控中的信号传输(电源/视频/音频)特性及差异

在现代安防视频监控系统中&#xff0c;国标GB28181协议作为公共安全视频监控联网系统的国家标准&#xff0c;该协议不仅规范了视频监控系统的信息传输、交换和控制技术要求&#xff0c;还为不同厂商设备之间的互联互通提供了统一的框架。EasyGBS平台基于GB28181协议&#xff0c…...

Day9 神经网络的偏导数基础

多变量函数与神经网络 在神经网络中&#xff0c;我们经常遇到多变量函数。这些函数通常描述了网络的输入、权重、偏置与输出之间的关系。例如&#xff0c;一个简单的神经元输出可以表示为&#xff1a; z f ( w 1 x 1 w 2 x 2 … w n x n b ) z f(w_1x_1 w_2x_2 \ldots…...

MTEB 排行榜之外:嵌入模型在 JRXML 场景下的选择逻辑

前文引用&#xff1a;通用分块器搞不定 JRXML&#xff1a;一个领域感知分块器的三层设计 分块之后&#xff0c;每一段文本需要转成一个向量&#xff0c;才能存进向量数据库做相似度检索。这个"文本 → 向量"的函数就是文本嵌入模型&#xff08;Embedding Model&#…...

ClawGuardian:AI生成内容滥用检测与防御实战指南

1. 项目概述与核心价值 最近在AI安全领域&#xff0c;一个名为“ClawGuardian”的项目引起了我的注意。这个项目由superglue-ai团队开源&#xff0c;定位非常明确&#xff1a;一个专注于检测和防御AI生成内容&#xff08;AIGC&#xff09;滥用的工具。简单来说&#xff0c;它就…...

[IdeaLoop · 灵感回路] 独立开发者创业/副业灵感日报 · 2026-05-14

灵感日报 2026年05月14日 从今日全网热点提炼&#xff0c;精选 5 个值得关注的商业方向。— 灵感回路 IdeaLoop 完整报告&#xff08;含竞品分析、MVP 规划、冷启动策略&#xff09;&#xff1a;idealoop.top &#x1f3c6; #1 胶片一键调色助手 综合评分&#xff1a;65 / 10…...

2026年3月 电子学会青少年软件编程机器人技术七级等级考试试卷真题【实际操作】

答案和更多内容请查看网站&#xff1a;【试卷中心 ----->电子学会 ---->机器人技术 ----> 七级】 网站链接 青少年软件编程历年真题模拟题实时更新 青少年机器人技术等级考试实际操作试卷&#xff08;七级&#xff09; 2026年3月 一、实操试题 主题&#xff1…...

Qubes OS自动化管理工具qubes-claw:声明式配置与安全隔离实践

1. 项目概述与核心价值最近在折腾一个挺有意思的项目&#xff0c;叫“qubes-claw”。这名字听起来有点神秘&#xff0c;对吧&#xff1f;我第一次看到的时候&#xff0c;也琢磨了半天。简单来说&#xff0c;这是一个专门为Qubes OS设计的自动化工具集。如果你对Qubes OS不熟悉&…...

数据库内机器学习:用SQL调用AI模型,简化预测工作流

1. 项目概述&#xff1a;当数据库遇上机器学习最近在开源社区里&#xff0c;一个名为mindsdb/anton的项目引起了我的注意。乍一看&#xff0c;这像是一个普通的数据库项目&#xff0c;但深入了解后&#xff0c;你会发现它试图解决一个困扰了数据工程师和分析师很久的痛点&#…...

突破性解决方案:Noto Emoji如何彻底终结表情符号乱码问题

突破性解决方案&#xff1a;Noto Emoji如何彻底终结表情符号乱码问题 【免费下载链接】noto-emoji Noto Emoji fonts 项目地址: https://gitcode.com/gh_mirrors/no/noto-emoji 你是否曾在不同设备上看到同一个表情符号显示为"□□"乱码&#xff1f;或者发现同…...

Go泛型实战经验总结:何时应该在新老项目中采用泛型

Go泛型实战经验总结&#xff1a;何时应该在新老项目中采用泛型 【免费下载链接】go-generics-the-hard-way A hands-on approach to getting started with Go generics. 项目地址: https://gitcode.com/gh_mirrors/go/go-generics-the-hard-way Go泛型是Go 1.18版本引入…...

如何将图片上的中文翻译成西班牙语?一键搞定电商详情页,低成本出海拉美市场(实战教程)

前言 在跨境电商越来越卷的今天&#xff0c;很多卖家开始把目光从欧美市场转向一个被低估的区域——拉丁美洲&#xff08;LATAM&#xff09;和西班牙市场。 但真正做起来你会发现&#xff0c;第一个拦路虎不是物流、不是选品&#xff0c;而是&#xff1a; ❗ 图片语言问题 尤…...

自由职业者收入追踪器:从数据模型到可视化分析的全栈实现

1. 项目概述&#xff1a;一个为自由职业者量身定制的收入追踪器如果你是一名自由职业者、独立开发者&#xff0c;或者正在经营自己的副业&#xff0c;那么“收入管理”这件事&#xff0c;大概率会让你感到头疼。项目款什么时候到账&#xff1f;这个月到底赚了多少钱&#xff1f…...