如何搭建第一个SpringBoot+MyBatis项目

news/2024/12/5 0:27:43/

🙈作者简介:练习时长两年半的Java up主
🙉个人主页:程序员老茶
🙊 ps:点赞👍是免费的,却可以让写博客的作者开兴好久好久😎
📚系列专栏:Java全栈,计算机系列(火速更新中)
💭 格言:种一棵树最好的时间是十年前,其次是现在
🏡动动小手,点个关注不迷路,感谢宝子们一键三连

目录

  • 课程名:Java
    • 内容/作用:知识点/设计/实验/作业/练习
    • 学习:SpringBoot+MyBatis
  • SpringBoot
  • 创建SpringBoot项目
    • 通过IDEA创建
    • 通过官网模板创建
  • SpringBoot的HelloWorld
    • 新建一个控制层的类
    • 更改项目默认配置
  • 开启热部署
    • 使用
  • Lombok
    • 使用
    • 在某个实体类上添加注解
  • SpringBoot+MyBatis实现单表查询
    • 1.创建好SpringBoot项目
    • 2.添加依赖
    • 3.项目配置
    • 4.根据数据表创建实体类、dao层接口、service、controller
    • 5.在SpringBoot的启动类上,添加@MapperScan注解,扫描dao层所在根包
  • 总结

课程名:Java

内容/作用:知识点/设计/实验/作业/练习

学习:SpringBoot+MyBatis

SpringBoot

Spring推出的一个Spring框架的脚手架。

不是一个新的框架,而是搭建Spring相关框架的平台。

它省去了Spring、SpringMVC项目繁琐的配置过程,让开发Web项目变得更加简单。

本质还是Spring+SpingMVC,可以搭配其他的ORM框架,如Mybatis,MybatisPlus,JPA,Hibernate等。

特点

  • 内置了Tomcat,不需要部署项目到Tomcat中
  • 内置了数据库连接池,Hikari
  • 减少了jar文件依赖的配置
  • SpringBoot中只有一个配置文件,格式为yml或properties。

创建SpringBoot项目

通过IDEA创建

在这里插入图片描述

在这里插入图片描述

通过官网模板创建

官网模板Spring Initializr

在这里插入图片描述

点击generate
在这里插入图片描述

会自动下载压缩包,解压后使用idea打开即可

创建后的目录结构

在这里插入图片描述

SpringBoot的HelloWorld

新建一个控制层的类

在SpringBoot的启动类XXXApplication所在的包中,创建子包,新建类

在这里插入图片描述

启动项目时,运行在这里插入图片描述类中的main方法即可,默认项目名为localhost:8080

@Controller
public class FirstController {@RequestMapping("/hello")public String hello(){System.out.println("xxxxxx");return "Hello SpringBoot!";}
}

如果这时启动项目后访问,是404页面,因为当前方法返回的字符串表示一个静态页面的名称,即static目录下的页面名。

@RequestMapping("/hello")
public String hello(){System.out.println("xxxxxx");return "welcome.html";
}

如果是返回一个.html页,且该页面位于static目录下,访问/hello时,就会跳转到对应页面

@RequestMapping("/hello")
@ResponseBody
public String hello(){System.out.println("xxxxxx");return "Hello SpringBoot!";
}

如果添加了@ResponseBody注解,访问该方法时,浏览器就会得到返回的内容

更改项目默认配置

在application.properties文件中

# 修改默认端口号
server.port=8088
# 修改项目上下文路径
server.servlet.context-path=/first

开启热部署

项目在开发工程中,可以不需要每次改动代码后重启,等待一段时间后自动更新编译运行

使用

添加依赖

<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-devtools</artifactId><scope>runtime</scope><optional>true</optional>
</dependency>

设置

在这里插入图片描述

在这里插入图片描述

Lombok

用于简化实体类中模板代码的工具

使用

添加依赖

<dependency><groupId>org.projectlombok</groupId><artifactId>lombok</artifactId><optional>true</optional>
</dependency>

IDEA2020.2之后的版本会内置Lombok插件,无需安装。

旧版本需要安装

  • IDEA插件官网IntelliJ IDEA Ultimate Plugins and Themes | JetBrains Marketplace
  • IDEA内置插件市场搜索
    在这里插入图片描述

在某个实体类上添加注解

Lombok常用注解作用
@AllArgsConstructor生成全参构造方法
@Data以下注解之和
@Setter生成set方法
@Getter生成get方法
@NoArgsConstructor生成无参构造方法
@ToString生成所有参数的toString()方法
@EqualsAndHashCode生成所有参数的equlas()和hashCode()方法

SpringBoot+MyBatis实现单表查询

1.创建好SpringBoot项目

在创建项目的同时可以选择第二步的依赖

2.添加依赖

  • spring-web
  • mybatis-spring-boot-starter
  • mysql-connector-j
  • lombok
  • spring-devtools
<!-- spring-web -->
<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId>
</dependency><!-- 热部署 -->
<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-devtools</artifactId><scope>runtime</scope><optional>true</optional>
</dependency><!-- mysql驱动 -->
<dependency><groupId>com.mysql</groupId><artifactId>mysql-connector-j</artifactId><scope>runtime</scope>
</dependency><!-- lombok -->
<dependency><groupId>org.projectlombok</groupId><artifactId>lombok</artifactId><optional>true</optional>
</dependency><!-- springboot集成mybatis -->
<dependency><groupId>org.mybatis.spring.boot</groupId><artifactId>mybatis-spring-boot-starter</artifactId><version>2.3.0</version>
</dependency>

3.项目配置

在application.properties中添加

  • 配置数据库连接信息

    spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
    spring.datasource.url=jdbc:mysql://localhost:3306/gamedb?serverTimezone=Asia/Shanghai
    spring.datasource.username=root
    spring.datasource.password=root
    
  • 配置Mybatis

    在resouces目录下创建一个mapper目录用于保存mybatis的sql映射文件

在这里插入图片描述

#mapper映射文件目录
mybatis.mapper-locations=classpath:mapper/*.xml
#开启驼峰命名映射
mybatis.configuration.map-underscore-to-camel-case=true
#开启sql日志
mybatis.configuration.log-impl=org.apache.ibatis.logging.stdout.StdOutImpl

mybatis的sql映射文件模板

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapperPUBLIC "-//mybatis.org//DTD Mapper 3.0//EN""https://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="某个dao层接口的全限定名"></mapper>

4.根据数据表创建实体类、dao层接口、service、controller

在这里插入图片描述

实体类

package com.hqyj.firstspringboot.entity;import lombok.Data;@Data
public class Hero {private Integer id;private String name;private String position;private String sex;private Integer price;private String shelfDate;
}

dao

package com.hqyj.firstspringboot.dao;import com.hqyj.firstspringboot.entity.Hero;
import org.springframework.stereotype.Repository;import java.util.List;/*
* dao层接口
* */
@Repository
public interface HeroDao {List<Hero> queryAll();
}

service

package com.hqyj.firstspringboot.service;import com.hqyj.firstspringboot.dao.HeroDao;
import com.hqyj.firstspringboot.entity.Hero;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;import java.util.List;@Service
public class HeroService {@Autowiredprivate HeroDao heroDao;public List<Hero> queryAll(){return heroDao.queryAll();}
}

controller

package com.hqyj.firstspringboot.controller;import com.hqyj.firstspringboot.entity.Hero;
import com.hqyj.firstspringboot.dao.HeroDao;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;import java.util.List;@Controller
public class FirstController {@Autowiredprivate HeroDao heroDao;@RequestMapping("/queryAll")@ResponseBodypublic List<Hero> queryAll(){return heroDao.queryAll();}
}

5.在SpringBoot的启动类上,添加@MapperScan注解,扫描dao层所在根包

package com.hqyj.firstspringboot;import org.mybatis.spring.annotation.MapperScan;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;@SpringBootApplication
@MapperScan("com.hqyj.firstspringboot.dao")
public class FirstSpringBootApplication {public static void main(String[] args) {SpringApplication.run(FirstSpringBootApplication.class, args);}
}

启动项目,根据设置的项目端口号、上下文路径、controller的映射访问对应的控制器

在这里插入图片描述

总结

   好好学习,天天向上。

往期专栏
Java全栈开发
数据结构与算法
计算机组成原理
操作系统
数据库系统
物联网控制原理与技术

http://www.ppmy.cn/news/107764.html

相关文章

数据结构基础-链表

2.2 链表 概述 定义 在计算机科学中&#xff0c;链表是数据元素的线性集合&#xff0c;其每个元素都指向下一个元素&#xff0c;元素存储上并不连续 In computer science, a linked list is a linear collection of data elements whose order is not given by their physic…

Eureka入门 ; 服务注册中心,服务注册服务发现;SpringCloud eureka

一、引入 Spring Cloud封装了netflix公司的Eureka模块来进行实现服务治理。 在传统的RPC远程调用框架中&#xff0c;管理每个服务服务之间依赖关系比较复杂&#xff0c;所以需要服务治理&#xff0c;管理服务之间的依赖。可以实现服务注册、调用、负载均衡、容错等技术。 1. 服…

Spring Boot 如何实现异步消息处理

Spring Boot异步消息处理 在现代应用程序中&#xff0c;异步消息处理是一项至关重要的任务。它可以提高应用程序的性能、可伸缩性和可靠性&#xff0c;同时也可以提供更好的用户体验。Spring Boot提供了多种方式来实现异步消息处理&#xff0c;包括使用Spring AMQP、Spring Ka…

Elasticsearch数据库

目录 1. 什么是ElasticSearch1.1 概念及特点1.2 ElasticSearch适用场景概述 2. 安装ElasticSearch2.1 下载安装包2.2 环境说明2.3 创建es的用户2.4 创建es存储位置2.5 安装es2.5 修改配置文件2.6 系统优化2.7 安装jdk环境2.8 切换es用户启动数据库2.9 systemctl管理2.10 访问 3…

AI浪潮再掀低代码开发热,快来了解最新趋势!

在近些年的发展中&#xff0c;人工智能 (AI) 已融入我们社会和生活的方方面面。从聊天机器人和虚拟助手到自动化工业机械和自动驾驶汽车&#xff0c;我们已经越来越离不开AI技术了&#xff0c;哪怕是我们的日常生活中也充满了它的影子&#xff0c;我们很难忽视它的影响。 AI时代…

解锁Qt QListWidget的全部潜力——用最佳实践和技巧赢得用户的喜爱和赞誉!

文章目录 前言一、属性和方法添加列表项获取当前选中的列表项删除列表项列表显示模式交替背景色 二、信号与槽选中的行数变化item被点击 三、解决icon图标模式下图标不对称的问题1、设置属性2、面向结果的手动换行 总结 前言 在现代的GUI应用程序中&#xff0c;列表框是必不可…

lmsys.org最新的LLM排行榜

lmsys.org Large Model Systems Organization (LMSYS Org) 是一个开放的研究组织&#xff0c;由加州大学伯克利分校的学生和教师与加州大学圣地亚哥分校和卡内基梅隆大学合作创立。 他们的目标是通过共同开发开放数据集、模型、系统和评估工具&#xff0c;让每个人都能访问大…

如何通过自学成为一名白帽黑客(网安工程师)

从事网络安全这么多年&#xff0c;总是会被问到很多奇奇怪怪的问题&#xff1a; 「叔叔&#xff0c;我Steam账号被盗了&#xff0c;能帮忙找回吗&#xff1f;我给你发红包」 「我的手机被监控了&#xff0c;生活和工作受到了严重影响&#xff0c;该怎么解决&#xff1f;」 「…