SpringBoot-搭建集成Mybatis的项目

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

一、搭建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: 8080
 
spring:
  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
 
#showSql
logging:
  level:
    com:
      example:
        mapper : debug

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


二、创建项目文件

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

1、创建文件夹目录

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


2、创建项目文件

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

① UserController.java
package com.controller;
 
import javax.annotation.Resource;
import javax.servlet.http.HttpServletRequest;
import org.springframework.web.bind.annotation.RequestMapping;
import com.entity.User;
import com.service.UserService;
import org.springframework.web.bind.annotation.RestController;
import java.util.HashMap;
import java.util.Map;
 
@RestController
public class UserController {
 
    @Resource
    private UserService userService;
 
    @RequestMapping("user")
    public String getTotal(User user,HttpServletRequest request)throws Exception{
        Map<String,Object> map = new HashMap<>();
        Long userCount =userService.getTotal(map);
        return userCount.toString();
    }
 
}
② UserDao.java
package com.dao;
 
import java.util.List;
import java.util.Map;
import com.entity.User;
 
public interface UserDao {
    public Long getTotal(Map<String,Object> map);
}
User.java

package com.entity;
 
public class User {
    private Integer id; // 编号
    private String userName; // 用户名
    private String password; // 密码
    private String trueName; // 真实姓名
    private String email; // 邮件
    private String phone; // 联系电话
    private String roleName; // 角色名称 系统管理员 销售主管 客户经理 高管
 
    public Integer getId() {
        return id;
    }
    public void setId(Integer id) {
        this.id = id;
    }
    public String getUserName() {
        return userName;
    }
    public void setUserName(String userName) {
        this.userName = userName;
    }
    public String getPassword() {
        return password;
    }
    public void setPassword(String password) {
        this.password = password;
    }
    public String getTrueName() {
        return trueName;
    }
    public void setTrueName(String trueName) {
        this.trueName = trueName;
    }
    public String getEmail() {
        return email;
    }
    public void setEmail(String email) {
        this.email = email;
    }
    public String getPhone() {
        return phone;
    }
    public void setPhone(String phone) {
        this.phone = phone;
    }
    public String getRoleName() {
        return roleName;
    }
    public void setRoleName(String roleName) {
        this.roleName = roleName;
    }
}
③ UserService.java
package com.service;
 
import java.util.List;
import java.util.Map;
import com.entity.User;
 
public interface UserService {
    public Long getTotal(Map<String,Object> map);
}
④ UserServiceImpl.java
package com.service.impl;
 
import java.util.Map;
import javax.annotation.Resource;
import org.springframework.stereotype.Service;
import com.dao.UserDao;
import com.entity.User;
import com.service.UserService;
 
@Service("userService")
public class UserServiceImpl implements UserService{
 
    @Resource
    private UserDao userDao;
 
    @Override
    public Long getTotal(Map<String, Object> map) {
        return userDao.getTotal(map);
    }
}
⑤ 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.dao.UserDao">
 
    <resultMap type="User" id="UserResult">
        <result property="id" column="id"/>
        <result property="userName" column="userName"/>
        <result property="password" column="password"/>
        <result property="trueName" column="trueName"/>
        <result property="email" column="email"/>
        <result property="phone" column="phone"/>
        <result property="roleName" column="roleName"/>
    </resultMap>
 
    <select id="getTotal" parameterType="Map" resultType="Long">
        select count(*) from t_user
    </select>
</mapper>

3、启动类添加MapperScan注解

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


三、测试项目是否成功运行

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

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

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

package com.controller;
 
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;
 
@RestController
public class HelloWorldController {
    @GetMapping("hello")
    public String hello() {
        return "hello world";
    }
}

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

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


四、测试项目的MyBatis是否生效

1、通过 "/user" 接口测试

同样,我们启动项目。

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

2、检查测试结果

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

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/291424.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

acwing 1358. 约数个数和(莫比乌斯函数)

设 d(x)&#xfffd;(&#xfffd;) 为 x&#xfffd; 的约数个数&#xff0c;给定 N,M&#xfffd;,&#xfffd;&#xff0c;求 ∑i1N∑j1Md(ij)∑&#xfffd;1&#xfffd;∑&#xfffd;1&#xfffd;&#xfffd;(&#xfffd;&#xfffd;) 输入格式 输入多组测试数据…

Spark内核解析-内存管理7(六)

1、Spark内存管理 Spark 作为一个基于内存的分布式计算引擎&#xff0c;其内存管理模块在整个系统中扮演着非常重要的角色。理解 Spark 内存管理的基本原理&#xff0c;有助于更好地开发 Spark 应用程序和进行性能调优。本文中阐述的原理基于 Spark 2.1 版本。 在执行 Spark 的…

VMware17 下载安装教程

VMware17 下载安装ubuntu22.04虚拟机安装 一、VM安装 1.打开官方下载地址&#xff1a;https://www.vmware.com/products/workstation-pro/workstation-pro-evaluation.html 跳转页面后&#xff0c;点击左边的Download oad now&#xff0c;下载的就是最新版的 Workstation 17 …

stm32实战之su-03t语音模块固件的制作与烧录

目录 su-03t简介 管脚定义 ​​智能公元语音固件制作​​ 账号注册 创建产品 产品配置 唤醒词自定义 命令词自定义 发音人配置 其他配置 生成和下载语音固件 固件烧录 下载SDK固件烧录工具 SU-03T驱动分享 su-03t简介 SU-03T 是一款低成本、低功耗、小体积的离线…

平衡二叉树,力扣

目录 前序遍历与后续遍历 题目地址&#xff1a; 题目&#xff1a; 我们直接看题解吧&#xff1a; 审题目事例提示&#xff1a; 解题方法&#xff1a; 难度分析&#xff1a; 解题方法分析&#xff1a; 解题分析&#xff1a; 解题思路&#xff1a; 代码实现&#xff1a; 补充说明…

idea 社区版 Database Navigator插件 列显示顺序错乱解决办法

idea 社区版 Database Navigator插件 列显示顺序错乱 影响&#xff1a;MyBatisCodeHelperPro插件生成代码字段顺序错乱 解决办法&#xff1a;将COLUMN 的排序方式由Name改为Position方式之后&#xff0c;reload即可&#xff01;

Spring Security 6.x 系列(14)—— 会话管理之源码分析

一、前言 在上篇 Spring Security 6.x 系列(13)—— 会话管理之会话概念及常用配置 Spring Security 6.x 系列(14)—— 会话管理之会话固定攻击防护及Session共享 中了清晰了协议和会话的概念、对 Spring Security 中的常用会话配置进行了说明,并了解会话固定攻击防护…

SCT52240Q双路 4A/4A 高速MOSFET/IGBT栅极驱动器, 可并联输出,替代UCC27524

• 4.5-24V宽供电电压 • 4A 峰值驱动拉电流和灌电流 • 双通道并联输出&#xff0c;增强驱动能力 • 低至-5V负压输入 • 支持TTL低压逻辑输入 • 13ns传输延迟 • 快速上升下降时间&#xff08;典型值8ns&#xff09; • 双通道1ns典型值延迟匹配时间 • 55uA静态功耗 • 输入…

巨杉数据库荣登2023胡润全球猎豹企业榜

胡润研究院与广州南沙联合发布《2023胡润全球猎豹企业榜》&#xff0c;这是胡润研究院首次发布“全球猎豹企业”。榜单列出了全球成立于2000年后&#xff0c;五年内最有可能达到独角兽级十亿美金估值的高成长性企业。巨杉数据库凭借在分布式文档型数据库领域的创新突破&#xf…

SpringMVC-视图

SpringMVC中的视图实现了View接口&#xff0c;作用是渲染数据&#xff0c;将Model中的数据展示给用户。render是渲染方法&#xff0c;可以看到渲染的视图是一个View类型的对象。 SpringMVC视图的种类有很多&#xff0c;默认有转发视图和重定向视图。 如果配置了Thymeleaf视图解…

Java 新手如何使用Spring MVC 中的查询字符串和查询参数

目录 前言 什么是查询字符串和查询参数&#xff1f; Spring MVC中的查询参数 处理可选参数 处理多个值 处理查询参数的默认值 处理查询字符串 示例&#xff1a;创建一个RESTful服务 总结 作者简介&#xff1a; 懒大王敲代码&#xff0c;计算机专业应届生 今天给大家…

el-table表格动态添加列。多组数据拼接和多层级数据的处理

提示&#xff1a;el-table表格动态添加列 文章目录 前言一、多组数据拼接二、多层级处理三、实际应用中&#xff0c;为避免闪屏&#xff0c;可以表格数据统一渲染总结 前言 需求&#xff1a;富文本编辑器 一、多组数据拼接 <template><div class"test">…

WEB 3D技术 three.js 几何体uv属性讲解与基本演示

本文 我们来说说uv 那么 它是什么呢&#xff1f; 首先 比如 我们几何体 贴一个图 那么 为什么我们图的四个边就能正好贴到几何体的边 为什么不可以图就在几何体中间呢&#xff1f; 中心为什么能对齐 它就不能偏一点吗&#xff1f; 这是第一个问题 还有我们 gltf 这种文件 其实…

14:00面试,14:06就出来了,问的问题真的变态。。。

从小厂出来&#xff0c;没想到在另一家公司又寄了。 到这家公司开始上班&#xff0c;加班是每天必不可少的&#xff0c;看在钱给的比较多的份上&#xff0c;就不太计较了。没想到5月一纸通知&#xff0c;所有人不准加班&#xff0c;加班费不仅没有了&#xff0c;薪资还要降40%…

分布式图文详解!

分布式理论 1. 说说CAP原则&#xff1f; CAP原则又称CAP定理&#xff0c;指的是在一个分布式系统中&#xff0c;Consistency&#xff08;一致性&#xff09;、 Availability&#xff08;可用性&#xff09;、Partition tolerance&#xff08;分区容错性&#xff09;这3个基本…

springCould中的Hystrix【上】-从小白开始【7】

目录 1.简单介绍❤️❤️❤️ 2.主要功能 ❤️❤️❤️ 3.正确案例❤️❤️❤️ 4.使用jmeter压测 ❤️❤️❤️ 5.建模块 80❤️❤️❤️ 6.如何解决上面问题 ❤️❤️❤️ 7.对8001进行服务降级❤️❤️❤️ 8.对80进行服务降级 ❤️❤️❤️ 9.通用降级方法❤️❤️…

数据中台建设之路

数据中台是在政企数字化转型过程中&#xff0c;对各业务单元业务与数据的沉淀&#xff0c;构建包括数据技术、数据治理、数据运营等数据建设、管理、使用体系&#xff0c;实现数据赋能。数据中台&#xff0c;是新型信息化应用框架体系中的核心。 1、什么是数据中台 随着企业数…

被客户骂咋办?客服请看这些处理方式

客户骂人的常见类型 1.没来得及回复就辱骂 绝大多数客户都非常反感机器人自动回复。但人工回复需要一定的回复时间&#xff0c;如果自己打字速度不快&#xff0c;则建议搭配使用快捷回复软件(客服宝) 2.说我们服务态度不好 回复上可以多加一些感叹后缀词&#xff0c;如“好…

【GO语言卵细胞级别教程】01.GO基础知识

01.GO基础知识 目录 01.GO基础知识1.GO语言的发展历程2.发展历程3.Windowns安装4.VSCode配置5.基础语法5.1 第一段代码5.2 GO执行的流程5.3 语法规则5.4 代码风格5.5 学习网址 1.GO语言的发展历程 Go语言是谷歌公司于2007年开始开发的一种编程语言&#xff0c;由Robert Griese…

PTA——逆序的三位数

程序每次读入一个正3位数&#xff0c;然后输出按位逆序的数字。注意&#xff1a;当输入的数字含有结尾的0时&#xff0c;输出不应带有前导的0。比如输入700&#xff0c;输出应该是7。 输入格式&#xff1a; 每个测试是一个3位的正整数。 输出格式&#xff1a; 输出按位逆序…