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这里是图片020https://gitee.com/tanzero/spring-boot.git

相关推荐
今天的砖头有点烫手啊3 小时前
接口太慢?Spring Boot 缓存体系 @Cacheable 全链路拆解
spring boot·后端·缓存
ChaHae-In3 小时前
MyBatis入门操作
java·mybatis
zzzll11115 小时前
Spring Boot 入门指南:从零开始构建微服务
spring boot·后端·微服务
用户3126874877205 小时前
你的定时任务真的靠谱吗?Spring Boot @Scheduled 全链路拆解
spring boot
程序员天天困6 小时前
Spring Boot i18n 国际化实战:从资源文件到多语言接口完整指南
spring boot·后端·编程语言
sugar__salt6 小时前
MyBatis ③动态 SQL 完全指南 —— 从条件拼接到批量操作
java·sql·mybatis
Flittly1 天前
【雕虫大技】Agent 动态 Skill 供应链安全加固(二):执行隔离沙箱实战
java·spring boot·spring
元界metalite1 天前
MyBatis多数据源常见难题-事务开始了为何数据源还没选出来
后端·mybatis
沐言人生1 天前
HelloAgentR工程手记1/100天——项目工作流搭建
spring boot·agent·vibecoding
陌上丨1 天前
Spring Boot 应用类型推断机制:一次从源码到原理的深度探索
java·spring boot·后端