前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >SpringBoot-搭建Mybatis项目

SpringBoot-搭建Mybatis项目

作者头像
Damon小智
发布于 2024-02-03 02:37:18
发布于 2024-02-03 02:37:18
22300
代码可运行
举报
文章被收录于专栏:JavaJava全栈文档库
运行总次数:0
代码可运行

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。

springboot 014 - SpringBoot-搭建Mybatis项目
springboot 014 - SpringBoot-搭建Mybatis项目

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

依赖项添加四个:

① Lombok

② Spring Web

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

④ Mybatis Framework

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

勾选好后,点击创建。

springboot 002 - SpringBoot-搭建Mybatis项目
springboot 002 - SpringBoot-搭建Mybatis项目

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

springboot 015 1024x581 - SpringBoot-搭建Mybatis项目
springboot 015 1024x581 - SpringBoot-搭建Mybatis项目

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

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

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

① application.yml

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
spring:
  profiles:
    active: dev

  thymeleaf:
    view-names: /*
    cache: false
    prefix: /WEB-INF/html
springboot 008 1024x684 - SpringBoot-搭建Mybatis项目
springboot 008 1024x684 - SpringBoot-搭建Mybatis项目

② application-dev.yml

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
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文件:

springboot 010 1024x600 - SpringBoot-搭建Mybatis项目
springboot 010 1024x600 - SpringBoot-搭建Mybatis项目

UserController.java

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
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

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
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

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
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

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
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

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
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

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<?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层文件。

springboot 013 1024x595 - SpringBoot-搭建Mybatis项目
springboot 013 1024x595 - SpringBoot-搭建Mybatis项目

三、测试SpringBoot是否可运行

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

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

springboot 003 1024x615 - SpringBoot-搭建Mybatis项目
springboot 003 1024x615 - SpringBoot-搭建Mybatis项目

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

springboot 004 1024x626 - SpringBoot-搭建Mybatis项目
springboot 004 1024x626 - SpringBoot-搭建Mybatis项目
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
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、运行项目,看测试控制器是否可以访问并正确运作

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

springboot 009 - SpringBoot-搭建Mybatis项目
springboot 009 - SpringBoot-搭建Mybatis项目

四、测试MyBatis是否搭建成功

同样,我们启动项目。

springboot 011 1024x531 - SpringBoot-搭建Mybatis项目
springboot 011 1024x531 - SpringBoot-搭建Mybatis项目

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

springboot 012 - SpringBoot-搭建Mybatis项目
springboot 012 - SpringBoot-搭建Mybatis项目

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

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

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2023-5-4,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
Flutter中设置Android的应用名称和图标(android,ios,web)#yyds干货盘点#
其实,Flutter设置App的应用名称和图标是要分开来操作的,Android和iOS是分开设置对应的App名称和图标的,这一点一定要注意。也可以把Android和iOS的应用名称和图标分开设置,可以设置不一样,但是毕竟一个App为了保证一致性,还是不要这样做,老老实实保证Android和iOS两个端的应用信息保持一致吧。
程序员小顾
2022/01/20
3.7K0
【Flutter 专题】 05 图解修改应用名称及图标
和尚有个臭毛病就是新建的项目都会优先更改一下项目名称,按照自己喜欢的名字定义,当然包括 Logo 也修改一下。刚接触 Flutter,语法都还没有了解,一切都是未知,单就改个项目名称也耽误了不少功夫,现在整理一下。 Flutter 在新建过程中的 project name 即为默认的应用名称,现在想要修改,尝试如下:
阿策小和尚
2019/08/12
1.4K0
【Flutter 专题】 05 图解修改应用名称及图标
Flutter 修改应用名称、图标、启动页
虽然flutter可以同时运行在android和ios设备上,但是修改名称、logo、启动页还是需要分开配置的。
yechaoa
2022/06/10
2.1K0
Flutter 修改应用名称、图标、启动页
使用 Flutter SDK 3.27.4构建HarmonyOS应用
项目地址:https://gitcode.com/openharmony-sig/flutter_flutter
徐建国
2025/06/08
1520
使用 Flutter SDK 3.27.4构建HarmonyOS应用
使用 Flutter SDK 3.22.1构建HarmonyOS应用
1.进入项目根目录,如果项目还未创建,则使用 flutter create 命令创建项目
徐建国
2024/11/06
5430
使用 Flutter SDK 3.22.1构建HarmonyOS应用
iOS15 切换上架App图标的最新方案
Xcode13以及iOS15发布之前,Apple其实已经支持在应用内切换图标了,通过将不同的ICON图标打到包内,并手动配置,然后通过业务代码修改ICON。当时的应用场景主要是提供给用户主动切换不同的图标,更换成自己喜欢的图标风格。
Swift社区
2022/04/04
3.2K0
iOS15 切换上架App图标的最新方案
App环境分离的实现:iOS篇
说到App环境分离在iOS的实现,我曾在iOS技术群里问过:如何实现在同一台手机能同时安装同个应用的测试和生产版本?应用名称要有区分,图标也要有所区别。不要手动修改Bundle id和应用名称,也不要手动替换图标,更不要维护两个项目。如何才能简单地实现?
Keegan小钢
2018/08/10
6020
App环境分离的实现:iOS篇
使用最新的 Flutter SDK 3.22.1 构建 HarmonyOS 应用
大家都知道目前鸿蒙的开源 tpc 和 sig 仓都迁移到了 gitcode 平台了,本次更新对 Flutter SDK 也有所涉及,所以我们就用最新的 Flutter SDK 来一起看一下如何构建 HarmonyOS 应用
徐建国
2025/04/11
7990
使用最新的 Flutter SDK 3.22.1 构建 HarmonyOS 应用
现有 Flutter 项目支持鸿蒙
最近这关税战打的是不亦说乎,从另一方面来说,国产替代浪潮奔涌,鸿蒙适配已成为一个必答题,这里面跨端框架是破局多 OS 割裂的最优解。比如 Flutter,之前有很多 app 可能是用 Flutter 做的,那么如何支持鸿蒙呢?
徐建国
2025/04/15
2.2K0
现有 Flutter 项目支持鸿蒙
Flutter配置Android和iOS允许HTTP访问:一步步指南
在开发Flutter应用时,尤其是与后端进行通信时,可能会遇到HTTP请求被拒绝的问题。本文将详细介绍如何在Android和iOS平台上配置Flutter应用以允许HTTP访问。
井九
2024/11/19
7430
Flutter 笔记 | 修改 App 图标、名称、启动页
对于什么都不懂直接上手 Flutter 开发的小 Android 而言,想要保证进度的同时还能帮助公司小伙伴,只能晚上熬夜补裤裆,各种翻阅官方以及前辈的文章。
贺biubiu
2020/05/25
3.3K0
iOS开发系列——文件结构
关于AppDelegate、main.m前面已经介绍过了,ViewController和Main.storyboard在后面介绍,这里先说一下Image.xcassets文件。在Xcode中打开这个文件会发现里面有两个设置项:AppIcon和LaunchImage
Kris大鲨
2018/05/05
1.2K3
iOS开发系列——文件结构
【iOS 开发】iOS 10.3 如何更换 app 图标
这是官方文档,但是你还需要在 info.plist 里面填一些东西才能让它起作用,这部分官方注释内容在这里。
KyXu
2019/04/11
1.1K0
【iOS 开发】iOS 10.3 如何更换 app 图标
iOS项目——项目开发环境搭建
  在开发项目之前,我们需要做一些准备工作,了解iOS扩展——Objective-C开发编程规范是进行开发的必备基础,学习iOS学习——Xcode9上传项目到GitHub是我们进行版本控制和代码管理的选择之一,明白iOS学习——iOS项目Project 和 Targets配置详解则更利于我们今天对完整项目开发环境的搭建,这些内容在在之前的博文中都已经有了一些总结和步骤说明,具体详情可以戳链接查看。   开发一个完整的App,不同于我们平时学习和练习时随意新建一个project,然后写我们示例代码就完了。要开
mukekeheart
2018/03/01
1.6K0
iOS项目——项目开发环境搭建
利用flutter_downloader插件在Flutter中实现文件下载
之前有做一个工具集的微信小程序「开挂Lite」,但是由于小程序自身限制,没有办法实现下载文件的功能,只能把下载链接解析出来。而且受限于微信平台,小程序的审核是一件很麻烦的事情,因此有了将其APP化的想法。
出其东门
2019/07/19
6.6K0
利用flutter_downloader插件在Flutter中实现文件下载
【Flutter】创建 Flutter 项目 ( Android Studio 创建并运行 Flutter 应用 | 命令行创建并运行 Flutter 应用 | 运行 Flutter 应用三种方式 )
先安装 Flutter 和 Dart 插件 , 参考 【Flutter】Flutter 开发环境搭建 ( Android Studio 下 Flutter / Dart 插件安装 | Flutter SDK 安装 | 环境变量配置 | 开发环境检查 ) 博客 ;
韩曙亮
2023/03/28
8.3K0
【Flutter】创建 Flutter 项目 ( Android Studio 创建并运行 Flutter 应用 | 命令行创建并运行 Flutter 应用 | 运行 Flutter 应用三种方式 )
flutter中如何实现deeplink
ios也支持两种,"Universal Links" 和 "Custom URL schemes",两个功能和android类似。
用户1974410
2022/09/20
2.6K0
Xcode 配置多套 App 图标的方法 --- AppStore 图标 A/B Test 实践
2021 年 12 月 08 日,苹果 推出 App Store 产品页的新功能,在 App Store 中开发者可以针对 app 产品页的不同版本上使用不同的图标、截屏和 app 预览,通过 A/B Test 找出效果最佳的版本。有部分读取可能知道我们在之前的文章 解读 AppStore 新功能:自定义产品页面和 A/B Test 工具,当时留下这个一个问题:测试不同的 app 图标,提交新图标的 app 审核流程是怎么样?
37手游iOS技术运营团队
2021/12/23
6.1K0
Xcode 配置多套 App 图标的方法 --- AppStore 图标 A/B Test 实践
【03】完整flutter的APP打包流程-以apk设置图标-包名-签名-APP名-打包流程为例—-开发完整的社交APP-前端客户端开发+数据联调|以优雅草商业
章节内容【03】完整flutter的APP打包流程-以apk设置图标-包名-签名-APP名-打包流程为例
卓伊凡
2025/01/17
1K0
【错误记录】命令行创建 Flutter 应用报错 pub get failed (server unavailable) -- attempting retry 1 in 1 second...
官方推荐的中国镜像 : https://flutter.dev/community/china
韩曙亮
2023/03/28
1K0
【错误记录】命令行创建 Flutter 应用报错 pub get failed (server unavailable) -- attempting retry 1 in 1 second...
推荐阅读
相关推荐
Flutter中设置Android的应用名称和图标(android,ios,web)#yyds干货盘点#
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档