SpringBoot-搭建Mybatis项目

本文涉及的产品
RDS MySQL DuckDB 分析主实例,基础系列 4核8GB
RDS MySQL DuckDB 分析主实例,集群系列 4核8GB
RDS AI 助手,专业版
简介: 通过本文的学习,读者将了解如何使用IntelliJ IDEA快速搭建一个基于SpringBoot和Mybatis的Java Web应用程序,提高开发效率。

IntelliJ IDEA是一款功能强大的Java集成开发环境(IDE),提供了各种工具和插件,可帮助开发者快速构建各种类型的Java应用程序。本文介绍了如何在IntelliJ IDEA中使用SpringBoot和Mybatis构建Java Web应用程序。通过本文的学习,读者将了解如何使用IntelliJ IDEA快速搭建一个基于SpringBoot和Mybatis的Java Web应用程序,提高开发效率。


一、搭建SpringBoot-Mybatis项目

1、新建SpringBoot项目

没有下载过IntelliJ IDEA的朋友,可以参考安装教程(Windows安装IntelliJ IDEA)

〇 服务器URL换成国内镜像站https://start.aliyun.com/

① 输入项目名称 ProjectManage

② 指定项目存储位置(根据需要勾选是否创建Git仓库)

③ 类型选maven

④ 组我自定义的com,默认是com.example

⑤ 软件包只写com就可以了,这个我当时没注意,在后面改掉了

⑥ 重要!!!选择 Java8,这是目前 Java 三个长期维护版本里,维护计划最长的,至少到2026年,Java8 也是目前企业里最常用的版本,电脑上没有装 JDK 的可以参考我之前的文章(怎样在Windows系统下载安装JDK?),这里 JDK 1.8是 Java8 的配套 JDK。

Spring Boot 版本选一个尽可能低的版本,3.0 以上好像会有兼容问题,这里我选的 2.7.11 。

依赖项添加四个:

① Lombok

② Spring Web

③ MySQL Driver (这个是MySQL驱动,如果其他数据库换成其他驱动)

④ Mybatis Framework

⑤ Spring Data Redis (Access + Driver) (后面如果需要用到redis的话可以一并勾选)

勾选好后,点击创建。

创建成功后,项目目录如下:

pom.xml是Maven的配置文件,如果需要导入新的jar包,只需要在这里面配置,然后刷新,即可自动下载导入。

2、新建application.yml和application-dev.yml

resources下删除原有的application-properties配置文件,新建两个文件:

① application.yml

spring:

  profiles:

    active:dev

 

  thymeleaf:

    view-names:/*

    cache:false

    prefix:/WEB-INF/html

② application-dev.yml

server:#指定服务端口  port: 8080spring:  datasource:#替换成MySQL账户    username: ******
#替换成MySQL密码    password: ******
#替换成数据库名    url: jdbc:mysql://localhost:3306/******?useUnicode=true&characterEncoding=utf-8&useSSL=true&serverTimezone=UTC
    driver-class-name: com.mysql.jdbc.Driver
mybatis:  mapper-locations: classpath:mappers/*Mapper.xml
  type-aliases-package: com.entity
#showSqllogging:  level:    com:      example:        mapper: debug

这里指定了com.entity,所有我们要新建好对应的文件夹。


二、创建项目文件

按照控制器->服务层->持久层->映射文件->实体的顺序依次编写

1、创建文件夹目录

java/com下四个:controller、service(及子目录impl)、dao、entity

resources下一个:mappers

2、创建项目文件

按照下图依次创建java文件:

UserController.java

packagecom.controller;
importjavax.annotation.Resource;
importjavax.servlet.http.HttpServletRequest;
importorg.springframework.web.bind.annotation.RequestMapping;
importcom.entity.User;
importcom.service.UserService;
importorg.springframework.web.bind.annotation.RestController;
importjava.util.HashMap;
importjava.util.Map;
@RestControllerpublicclassUserController {
@ResourceprivateUserServiceuserService;
@RequestMapping("user")
publicStringgetTotal(Useruser,HttpServletRequestrequest)throwsException{
Map<String,Object>map=newHashMap<>();
LonguserCount=userService.getTotal(map);
returnuserCount.toString();
    }
}

UserDao.java

packagecom.dao;
importjava.util.List;
importjava.util.Map;
importcom.entity.User;
publicinterfaceUserDao {
publicLonggetTotal(Map<String,Object>map);
}

User.java

packagecom.entity;
publicclassUser {
privateIntegerid; // 编号privateStringuserName; // 用户名privateStringpassword; // 密码privateStringtrueName; // 真实姓名privateStringemail; // 邮件privateStringphone; // 联系电话privateStringroleName; // 角色名称 系统管理员 销售主管 客户经理 高管publicIntegergetId() {
returnid;
    }
publicvoidsetId(Integerid) {
this.id=id;
    }
publicStringgetUserName() {
returnuserName;
    }
publicvoidsetUserName(StringuserName) {
this.userName=userName;
    }
publicStringgetPassword() {
returnpassword;
    }
publicvoidsetPassword(Stringpassword) {
this.password=password;
    }
publicStringgetTrueName() {
returntrueName;
    }
publicvoidsetTrueName(StringtrueName) {
this.trueName=trueName;
    }
publicStringgetEmail() {
returnemail;
    }
publicvoidsetEmail(Stringemail) {
this.email=email;
    }
publicStringgetPhone() {
returnphone;
    }
publicvoidsetPhone(Stringphone) {
this.phone=phone;
    }
publicStringgetRoleName() {
returnroleName;
    }
publicvoidsetRoleName(StringroleName) {
this.roleName=roleName;
    }
}

UserService.java

packagecom.service;
importjava.util.List;
importjava.util.Map;
importcom.entity.User;
publicinterfaceUserService {
publicLonggetTotal(Map<String,Object>map);
}

UserServiceImpl.java

packagecom.service.impl;
importjava.util.Map;
importjavax.annotation.Resource;
importorg.springframework.stereotype.Service;
importcom.dao.UserDao;
importcom.entity.User;
importcom.service.UserService;
@Service("userService")
publicclassUserServiceImplimplementsUserService{
@ResourceprivateUserDaouserDao;
@OverridepublicLonggetTotal(Map<String, Object>map) {
returnuserDao.getTotal(map);
    }
}

UserMapper.xml

<?xmlversion="1.0"encoding="UTF-8"?><!DOCTYPEmapperPUBLIC"-//mybatis.org//DTD Mapper 3.0//EN""http://mybatis.org/dtd/mybatis-3-mapper.dtd"><mappernamespace="com.dao.UserDao"><resultMaptype="User"id="UserResult"><resultproperty="id"column="id"/><resultproperty="userName"column="userName"/><resultproperty="password"column="password"/><resultproperty="trueName"column="trueName"/><resultproperty="email"column="email"/><resultproperty="phone"column="phone"/><resultproperty="roleName"column="roleName"/></resultMap><selectid="getTotal"parameterType="Map"resultType="Long">selectcount(*) fromt_user</select></mapper>


3、给启动类添加MapperScan注解

启动类前添加@MapperScan(“com.dao”)注解,这样才能检索到dao层文件。


三、测试SpringBoot是否可运行

1、启动类的同级或子目录下创建测试控制器

启动配置文件在.idea文件夹下面,里面指定了启动类(包含main函数的类)。启动类默认是 xxxApplication (xxx为项目名),所有的类想要被访问,必须放在启动类的同级或子目录下,否则会因为找不到而提示404。

接着,我们创建测试控制器HelloWorldController。

packagecom.controller;

 

importorg.springframework.web.bind.annotation.GetMapping;

importorg.springframework.web.bind.annotation.RestController;

 

@RestController

publicclassHelloWorldController {

    @GetMapping("hello")

    publicString hello() {

        return"hello world";

    }

}


2、运行项目,看测试控制器是否可以访问并正确运作

右上方运行项目,输入l0calhost:8080/hello,如果按照预期返回值,便是搭建成功。


四、测试MyBatis是否搭建成功

同样,我们启动项目。

输入l0calhost:8080/user,访问我们基于MyBatis的控制器。

这里返回的是我们getTotal()函数获得的t_user表的行数,表明已经成功连接到数据库,我们Mybatis的搭建成功了。

以上就是我们IntelliJ IDEA搭建SpringBoot-Mybatis项目的全部教程,如果有疑问,或者过程中出现解决不了的问题,欢迎评论区留言。

相关实践学习
每个IT人都想学的“Web应用上云经典架构”实战
本实验从Web应用上云这个最基本的、最普遍的需求出发,帮助IT从业者们通过“阿里云Web应用上云解决方案”,了解一个企业级Web应用上云的常见架构,了解如何构建一个高可用、可扩展的企业级应用架构。
MySQL数据库入门学习
本课程通过最流行的开源数据库MySQL带你了解数据库的世界。 &nbsp; 相关的阿里云产品:云数据库RDS MySQL 版 阿里云关系型数据库RDS(Relational Database Service)是一种稳定可靠、可弹性伸缩的在线数据库服务,提供容灾、备份、恢复、迁移等方面的全套解决方案,彻底解决数据库运维的烦恼。 了解产品详情:&nbsp;https://www.aliyun.com/product/rds/mysql&nbsp;
目录
相关文章
|
11月前
|
前端开发 安全 Java
Spring Boot 便利店销售系统项目分包设计解析
本文深入解析了基于Spring Boot的便利店销售系统分包设计,通过清晰的分层架构(表现层、业务逻辑层、数据访问层等)和模块化设计,提升了代码的可维护性、复用性和扩展性。具体分包结构包括`controller`、`service`、`repository`、`entity`、`dto`、`config`和`util`等模块,职责分明,便于团队协作与功能迭代。该设计为复杂企业级应用开发提供了实践参考。
429 0
|
9月前
|
Java 数据库连接 数据库
Spring boot 使用mybatis generator 自动生成代码插件
本文介绍了在Spring Boot项目中使用MyBatis Generator插件自动生成代码的详细步骤。首先创建一个新的Spring Boot项目,接着引入MyBatis Generator插件并配置`pom.xml`文件。然后删除默认的`application.properties`文件,创建`application.yml`进行相关配置,如设置Mapper路径和实体类包名。重点在于配置`generatorConfig.xml`文件,包括数据库驱动、连接信息、生成模型、映射文件及DAO的包名和位置。最后通过IDE配置运行插件生成代码,并在主类添加`@MapperScan`注解完成整合
1496 1
Spring boot 使用mybatis generator 自动生成代码插件
|
8月前
|
JSON 分布式计算 大数据
springboot项目集成大数据第三方dolphinscheduler调度器
springboot项目集成大数据第三方dolphinscheduler调度器
526 3
|
8月前
|
Java 关系型数据库 数据库连接
Spring Boot项目集成MyBatis Plus操作PostgreSQL全解析
集成 Spring Boot、PostgreSQL 和 MyBatis Plus 的步骤与 MyBatis 类似,只不过在 MyBatis Plus 中提供了更多的便利功能,如自动生成 SQL、分页查询、Wrapper 查询等。
840 3
|
8月前
|
Java 关系型数据库 MySQL
springboot项目集成dolphinscheduler调度器 实现datax数据同步任务
springboot项目集成dolphinscheduler调度器 实现datax数据同步任务
826 2
|
8月前
|
分布式计算 Java 大数据
springboot项目集成dolphinscheduler调度器 可拖拽spark任务管理
springboot项目集成dolphinscheduler调度器 可拖拽spark任务管理
467 2
|
8月前
|
Java 测试技术 Spring
简单学Spring Boot | 博客项目的测试
本内容介绍了基于Spring Boot的博客项目测试实践,重点在于通过测试驱动开发(TDD)优化服务层代码,提升代码质量和功能可靠性。案例详细展示了如何为PostService类编写测试用例、运行测试并根据反馈优化功能代码,包括两次优化过程。通过TDD流程,确保每项功能经过严格验证,增强代码可维护性与系统稳定性。
329 0
|
8月前
|
存储 Java 数据库连接
简单学Spring Boot | 博客项目的三层架构重构
本案例通过采用三层架构(数据访问层、业务逻辑层、表现层)重构项目,解决了集中式开发导致的代码臃肿问题。各层职责清晰,结合依赖注入实现解耦,提升了系统的可维护性、可测试性和可扩展性,为后续接入真实数据库奠定基础。
665 0
|
9月前
|
Java 数据库连接 API
Java 对象模型现代化实践 基于 Spring Boot 与 MyBatis Plus 的实现方案深度解析
本文介绍了基于Spring Boot与MyBatis-Plus的Java对象模型现代化实践方案。采用Spring Boot 3.1.2作为基础框架,结合MyBatis-Plus 3.5.3.1进行数据访问层实现,使用Lombok简化PO对象,MapStruct处理对象转换。文章详细讲解了数据库设计、PO对象实现、DAO层构建、业务逻辑封装以及DTO/VO转换等核心环节,提供了一个完整的现代化Java对象模型实现案例。通过分层设计和对象转换,实现了业务逻辑与数据访问的解耦,提高了代码的可维护性和扩展性。
366 1
|
分布式计算 大数据 Java
springboot项目集成大数据第三方dolphinscheduler调度器 执行/停止任务
springboot项目集成大数据第三方dolphinscheduler调度器 执行/停止任务
207 0