news 2026/5/16 19:51:11

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

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
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.Driver username: root password: 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 Setters public 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; } // 打印结果对象信息的方法(可选) @Override public 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 { @Resource private 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 mapper PUBLIC "-//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 { @Resource private UserMapper userMapper; public List<user> selectAll() { List<user> list = userMapper.selectAll(); return list; } }

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

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

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

五、代码仓库

具体代码仓库

200K/SpringBoot[这里是图片020]https://gitee.com/tanzero/spring-boot.git

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/5/10 17:49:18

Java进阶10 IO流

Java进阶10 IO流 IO流就是数据传输。I为input的缩写&#xff0c;表示输入读取&#xff1b;O为out的缩写&#xff0c;表示输出写出。 一、IO流体系结构巧记区分tips&#xff1a;以Stream结尾的是字节流&#xff1b;以Reader、Writer结尾的都是字符流 二、字节输出流FileOutputSt…

作者头像 李华
网站建设 2026/5/14 18:00:07

Java进阶06List集合泛型

Java进阶06 集合 一、集合及其体系结构 集合是一个长度可变的容器 1、集合的体系结构 1.1 单列集合单列集合使用add()方法添加集合元素&#xff0c;一次只能添加一个元素。单列集合均实现了Collection接口&#xff0c;该接口还有两个子接口List和Set。List接口 List集合的特点是…

作者头像 李华
网站建设 2026/5/4 15:25:35

什么是当前读和快照读?

在 MySQL InnoDB 中&#xff0c;当前读和快照读是 MVCC 机制下的两种数据读取方式&#xff0c;核心区别在于 是否读取最新版本、是否加锁、是否受其他事务影响&#xff0c;二者分工协作实现了 “读写不阻塞” 的高效并发。 一、快照读&#xff08;Snapshot Read&#xff09; …

作者头像 李华
网站建设 2026/5/12 21:47:09

JAVA进阶 THREAD学习10 多线程案例--计时器

标准库中计时器的使用 Timer类的实例化对象TimerTask类的是实例化对象–在run方法中存放运行的代码延迟的时间&#xff08;相对时间&#xff0c;相对于当前时间之后的多少毫秒等&#xff09; 时间需要安排schedule public static void main(String[] args) {System.out.println…

作者头像 李华
网站建设 2026/5/16 7:37:47

面试 Java 基础八股文十问十答第二期

面试 Java 基础八股文十问十答第二期 作者&#xff1a;程序员小白条&#xff0c;个人博客 ⭐点赞⭐收藏⭐不迷路&#xff01;⭐ 11.什么是反射&#xff1f;反射有哪些作用&#xff1f;反射在Sping中的体现 (1): 什么是反射? 反射可以在运行时获取到一个类的所有信息&#xf…

作者头像 李华
网站建设 2026/5/14 16:58:37

毫米波V2I网络的链路层仿真研究(Matlab代码实现)

&#x1f4a5;&#x1f4a5;&#x1f49e;&#x1f49e;欢迎来到本博客❤️❤️&#x1f4a5;&#x1f4a5; &#x1f3c6;博主优势&#xff1a;&#x1f31e;&#x1f31e;&#x1f31e;博客内容尽量做到思维缜密&#xff0c;逻辑清晰&#xff0c;为了方便读者。 ⛳️座右铭&a…

作者头像 李华