springboot+Mybatis项目搭建教学(controller、service、dao、entity),并写一个简单的接口

news2025/9/16 13:22:45

创建一个springboot的项目

首先我们需要新建一个文件夹对吧,这里就不展示了,然后我们用IDEA打开这个文件夹,是这样的
在这里插入图片描述

新建一个模块

在这里插入图片描述
然后按照这里的进行选择
在这里插入图片描述
模块名字是自己随便起的,命名在这里时无关紧要的,然后我们点击Next
我们选择一个较为稳定的springboot版本
在这里插入图片描述

然后Dependencies我们不进行选择,选择在项目中自己进行引入
然后点击Create

这样我们这个模块就创建好了

配置Maven

点击左上角的File,点击settings
在这里插入图片描述
可以直接搜索maven,找到maven的配置项
在这里插入图片描述
在这里插入图片描述
然后重写的两项我们需要找到自己的maven路径,然后配置上
在这里插入图片描述
这里如果看不懂的话,可以单独搜索IDEA中maven的配置,也可以看我在B站录得视频
视频链接Java项目启动教学

pom.xml中导入依赖

我们先导入这几项就行
在这里插入图片描述

        <!--        mysql驱动-->
        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <version>8.0.31</version>
        </dependency>
        <!--        web依赖-->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>
        <!--        mybatis依赖-->
        <dependency>
            <groupId>org.mybatis.spring.boot</groupId>
            <artifactId>mybatis-spring-boot-starter</artifactId>
            <version>2.2.2</version>
        </dependency>
        <!--        lombok-->
        <dependency>
            <groupId>org.projectlombok</groupId>
            <artifactId>lombok</artifactId>
        </dependency>

然后刷新一下,下载依赖就可以了

数据库

我们这里选择的是MySQL数据库,表我们就选择mybatis官网给我们的例子就可以
在这里插入图片描述
我们启动数据库,打开Navicat

数据库的教程上面的视频也有,这里不单独教学了

我们新建一个数据库叫做mybatis,选好字符集即可
在这里插入图片描述
点击新建查询
在这里插入图片描述
把官网的那段sql,过来执行即可
在这里插入图片描述
在这里插入图片描述
数据库就完事了

编写三层架构(Controller、Service、Dao),启动项目

在这里插入图片描述
新建三个包、分别是Controller、Service、Dao
在这里插入图片描述
把实体类也新建出来,并定义出User类
在这里插入图片描述

编写entity实体类

把我们实体类的属性和数据库表中的字段一一对应上

package com.example.entity;

import lombok.*;

@Data
@NoArgsConstructor
@AllArgsConstructor
public class User {
    private Long id;
    private String name;
    private Integer age;
    private String email;
}

这里我们选择了用lombok进行注解的方式,省略了我们手动去写get、set方法,和有参无法的构造函数

我们可以发现加上注解之后,上面说的内容都有了
在这里插入图片描述

编写dao层

我们新建一个接口,叫做UserDao
在这里插入图片描述

我们定义selectAll方法用来进行查询,用List来进行接受,泛型就写我们的User即可

在这里插入图片描述

然后我们需要用Mapper注解来让spring boot来进行Bean的管理

在这里插入图片描述

编写service

我们定义出UserService接口,然后新建一个包,定义出UserServiceImpl实现类
在这里插入图片描述

先在接口中定义出方法
在这里插入图片描述
然后在实现类中用implements进行实现,以及方法重写

在这里插入图片描述

首先通过注解注入UserDao

在这里插入图片描述

然后在return中返回方法

在这里插入图片描述

编写Controller

新建一个UserController,然后通过注解,注入service
在这里插入图片描述

定义出方法和返回值

在这里插入图片描述

定义RequestMapping

在这里插入图片描述

这样我们三层就书写完了吗,不,我们还有mybatis没有书写

书写mapper

首先,新建resources
在这里插入图片描述
这里注意哈,我这个没有经过任何配置,都是自己新建,是为了大家学习,其实这个不用新建是可以进行配置,然后新建项目就会有的,这个大家自己自行搜索即可。

我们新建模块

在这里插入图片描述
注意这里要写/,不要写.

然后新建一个UserDao.xml

在这里插入图片描述

然后书写我们的mybatis

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
        PUBLIC "-//mybatis.org//DTO Mapper 3.0//EN"
        "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.example.dao.UserDao">
    <select id="selectAll" resultType="com.example.entity.User">
        select * from user
    </select>
</mapper>

这里注意namespace是对应我们dao层的接口
resultType对应的是我们的实体类
id就是对应的方法名

application.yml中链接数据库

在resources文件下新建application.yml

在这里插入图片描述
这里不用application.properties是因为.yml文件时天然的树形结构,看着更清晰一些,而且工作中更为常用

spring:
  datasource:
    username: root
    password: 123456
    url: jdbc:mysql://localhost:3306/mybatis?serverTimezone=UTC&characterEncoding=utf8&useUnicode=true&useSSL=false
    driver-class-name: com.mysql.jdbc.Driver

注意冒号后面一定要加空格,要不不会生效

username和password对应数据库的账号密码

url中的3306后面对应的是数据库的表名

然后我们启动项目

启动项目

在启动类里面选择运行
在这里插入图片描述
我们通过控制台看日志发现启动成功
在这里插入图片描述
我们在浏览器输入对应的url
在这里插入图片描述
就可以看到返回的查询结果了,当然,也可以通过postman,apifox等来进行测试

结语

这个只是一个简单的教学,如果需要的话,后面会完整写项目,或者是简单CRUD的操作

下一篇会出mybatis-plus的简单教学,有问题评论或者私信反馈给我即可

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Python实现Imagenet数据集的合并和拆分

Python实现Imagenet数据集的合并和拆分 1. 合并Imagenet 任务需求 文件夹形式为一个数据集MyImagenet&#xff0c;路径为/home/lihuanyu/code/03AdaBins/img_data/MyImagenet/val&#xff0c;val文件夹又有若干的类别子文件夹&#xff0c;子文件夹是每一个类别的图片&#xf…

数据结构_第十一关:二叉树的链式结构

目录 1.二叉树链式结构的实现 1.1前置说明 1.2二叉树的遍历 1.3二叉树遍历的实现&#xff1a; 1&#xff09;先序遍历、中序遍历、后续遍历代码如下 2&#xff09;层序遍历&#xff1a; 1.4结点个数以及高度的计算 1&#xff09;求二叉树的总节点&#xff1a; 2&#…

阿里张勇:所有行业都值得用大模型重新做一遍!

‍数据智能产业创新服务媒体——聚焦数智 改变商业“2023阿里云峰会”于4月11日在北京国际会议中心隆重召开&#xff0c;本次峰会以" 与实俱进 为创新提速&#xff01;"为主题&#xff0c;阿里巴巴集团董事会主席兼首席执行官张勇、阿里云智能集团首席技术官周靖人、…

Python机器学习:适合新手的8个项

再多的理论也不能代替动手实践。教科书和课程会让你误以为精通&#xff0c;因为材料就在你面前。但当你尝试去应用它时&#xff0c;可能会发现它比看起来更难。而「项目」可帮助你快速提高应用的 ML 技能&#xff0c;同时让你有机会探索有趣的主题。此外&#xff0c;你可以将项…

java mysql高校教学成果管理系统dzkfY3程序

1.用户管理模块&#xff1a; 该模块包括注册用户管理和系统用户管理&#xff0c;系统用户主要是普通管理员&#xff0c;对用户信息进行管理&#xff0c;只有注册用户才可在该系统上进行相应的操作。用户对个人信息可进行修改&#xff1b;管理员可对自己的个人信息进行维护&…

Java线程系列详解

一&#xff0c;基本概念 进程&#xff1a; 程序是计算机指令的集合&#xff0c;它以文件形式存储在磁盘上&#xff0c;而进程就是一个执行中的程序&#xff0c;而每一个进程都有其独立的内存空间和系统资源。线程&#xff1a; 线程运行在进程中&#xff0c;不能独立存在。线程…

2019年 团体程序设计天梯赛——题解集

前言&#xff1a; Hello各位童学大家好&#xff01;&#x1f60a;&#x1f60a;&#xff0c;茫茫题海你我相遇即是缘分呐&#xff0c;或许日复一日的刷题已经让你感到疲惫甚至厌倦了&#xff0c;但是我们真的真的已经达到了我们自身极限了吗&#xff1f;少一点自我感动&#xf…

城乡供水一体化信息化系统-城乡供水一体化

建设方案 城乡供水一体化信息化系统是运用云计算、大数据等信息化手段&#xff0c;借助在线监测设备&#xff0c;并依托“供水信息化平台”&#xff0c;实时感知供水系统的运行状态&#xff0c;实现对农村供水工程远程监控、在线监测、实时预警、智慧监管。 系统功能 水源地监测…

【 初识 Spring MVC 程序开发 】

文章目录一、什么是 Spring MVC二、什么是 MVC三、MVC 和 Spring MVC 的关系四、为什么要学 Spring MVC五、怎么学 Spring MVC六、Spring MVC 创建和连接一、什么是 Spring MVC Spring Web MVC 是基于 Servlet API 构建的原始 Web 框架&#xff0c;从⼀开始就包含在 Spring 框…

搜索算法(一) 深度优先搜索 dfs

一、搜索算法 包括深度优先搜索算法和广度优先搜索算法&#xff0c;用于树或图等结构中进行搜索。 二、深度优先搜索 深度优先算法会尽可能深地搜索树的分支。当节点v的所在边都己被探寻过&#xff0c;搜索将回溯到发现节点v的那条边的起始节点。这一过程一直进行到已发现从源…

全网最详细,Jmeter性能测试-性能基础详解,终成测试卷王(一)

目录&#xff1a;导读前言一、Python编程入门到精通二、接口自动化项目实战三、Web自动化项目实战四、App自动化项目实战五、一线大厂简历六、测试开发DevOps体系七、常用自动化测试工具八、JMeter性能测试九、总结&#xff08;尾部小惊喜&#xff09;前言 发起请求 发起HTTP…

电脑自动录屏软件哪个好用 电脑自动录屏怎么设置

录屏是很多工作都需要进行的操作&#xff0c;很多会议、培训课程、PPT等都可能需要通过屏幕录制的方式来进行分享。但是目前市面上的录屏软件很多&#xff0c;想找到使用便捷且高效的软件并不容易。今天就来分享一下电脑自动录屏软件哪个好用&#xff0c;电脑自动录屏怎么设置。…

条码控件Aspose.BarCode入门教程(5):用Java 生成和扫描二维码

Aspose.BarCode for .NET 是一个功能强大的API&#xff0c;可以从任意角度生成和识别多种图像类型的一维和二维条形码。开发人员可以轻松添加条形码生成和识别功能&#xff0c;以及在.NET应用程序中将生成的条形码导出为高质量的图像格式。 Aspose API支持流行文件格式处理&am…

学习数据结构第4天(线性表的顺序表示)

线性表的顺序表示顺序表的定义顺序表的基本操作顺序表的定义 线性表的顺序存储又称顺序表。顺序表是在计算机内存中以数组的形式保存的线性表&#xff0c;线性表的顺序存储时指用一组地址连续的存储单元&#xff0c;依次存储线性表中的各个元素。因此线性表中任一数据元素都可…

60行代码出炫酷效果之 python语音控制电脑壁纸切换

前言 大家早好、午好、晚好吖 ❤ ~欢迎光临本文章 电脑大家有吧&#xff01;手大家有吧&#xff01;今天&#xff01;&#xff01; 就由我带领大家用区区60行代码打造一款语音壁纸切换器程序&#xff01;&#xff01;&#xff01; 单纯的桌面有时候会让人觉得单调&#xff0c…

vue.js实现带表情评论功能前后端实现(仿B站评论)

文章目录学习链接效果图后台建表评论表&#xff08;重要&#xff09;用户表实体类CommentUserCommentDTO&#xff08;重要&#xff09;WebConfig配置配置跨域和静态资源文件夹Mybatisplus相关类MyBatisPlusConfig 配置分页插件CommentMapperCommentMapper.xml&#xff08;非常重…

git 将其它分支的文件检出到工作区

主要是使用如下命令&#xff1a; git checkout [-f|--ours|--theirs|-m|--conflict<style>] [<tree-ish>] [--] <pathspec>…​覆盖与 pathspec 匹配的文件的内容。当没有给出<tree-ish> (通常是一个commit)时&#xff0c;用 index 中的内容覆盖工作树…

高频电流探头示波器电流探头的功能检验和消磁操作

高频电流探头运用了成熟的霍尔效应技术并与示波器接口相结合。主要特点包括&#xff1a;分芯结构&#xff0c;简便地连接电路&#xff1b;AC / DC测量能力&#xff1b;精度1%5mV&#xff1b;连接的仪器上直接显示读数。 功能检验&#xff1a; 1、探头连接示波器&#xff1b; 2…

OpenAI Embedding:基于人工智能的搜索新篇章

theme: orange 本文正在参加「金石计划」 Embedding模型在许多应用场景中都有广泛的应用。在OpenAI中&#xff0c;文本嵌入技术主要用于衡量文本字符串之间的相关性。 什么是Embedding 嵌入(Embeddings)是一种将离散变量表示为连续向量的方法。它在机器学习中起到了不可或缺的作…

字节分享的软件测试《面试笔记》文档,让我直呼卧槽卧槽

我有一个朋友&#xff08;真是朋友&#xff0c;不是我啊&#xff09;&#xff0c;前几年环境好的时候入的行&#xff0c;那时候软件测试的要求真的很低&#xff0c;他那时好像是报了个班&#xff0c;然后入门的&#xff0c;但学的都是些基础&#xff0c;自动化涉及了一点&#…