【Java-SpringBoot+Vue+MySql】Day2-第一个SpringBoot项目应用

news2024/11/25 14:22:28

目录

一、初步了解SpringBoot

二、创建第一个SpringBoot项目

 三、配置MyBatis数据源

四、创建启动类 

五、MVC设计模式

六、SpringBoot整合应用

 (1)创建一个实体类

 (2)创建DAO接口

 (3)创建mapper(映射)模板

 (4)创建数据库映射

 (5)实现接口

 (6)实现控制层

 (7)向数据库中添加一条数据

 (8)思路梳理 

七、必备技巧

 (1)开发环境热部署


一、初步了解SpringBoot

二、创建第一个SpringBoot项目

 

阿里云服务器配置URL: https://start.aliyun.com

(注:IDEA低版本用不了阿里云服务器镜像)

添加环境

 三、配置MyBatis数据源

四、创建启动类 

重构包名,删除java目录中原来的包,新建以下包结构:

编写初始类代码:

package com.qf;

import org.mybatis.spring.annotation.MapperScan;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;

@SpringBootApplication
@MapperScan("com.qf.dao")
public class Demo01Application {
    /**
     * SpringBoot的启动类
     */
    public static void main(String[] args) {
        SpringApplication.run(Demo01Application.class,args);
    }
}

 运行程序:

打开浏览器输入网址:

http://localhost:8080/ 

五、MVC设计模式

 六、SpringBoot整合应用

 

 (1)创建一个实体类

数据库中建表:

创建book类

 代码:

package com.qf.pojo;

import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import lombok.ToString;

import java.util.Date;

@Data
@NoArgsConstructor
@AllArgsConstructor
@ToString
public class Book {
    private int bookId;
    private String bookName;
    private String bookAuthor;
    private double bookPrice;
    private String bookImg;
    private Date bookDate;
    private String bookDesc;
}

 (2)创建DAO接口

 

代码:

package com.qf.dao;

import com.qf.pojo.Book;

public interface BookDao {
    /**
     *添加书籍方法
     */
    int insertBook(Book book);
}

(3)创建mapper(映射)模板

代码:

<?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">

<!--namespace = 所需实现的接口全限定名-->
<mapper namespace="">

</mapper>

用模板创建一个BookMapper

下载MybatisX组件

 (4)创建数据库映射

 BookMapper

<?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">

<!--namespace = 所需实现的接口全限定名-->
<mapper namespace="com.qf.dao.BookDao">
    <insert id="insertBook">
        insert into to_books(book_name,book_author,book_price,book_img,book_date,book_desc)
        values(#{bookName},#{bookAuthor},#{bookPrice},#{bookImg},#{bookDate},#{bookDesc},)
    </insert>

</mapper>

 (5)实现接口

创建业务实现层impl

代码: 

package com.qf.service.impl;

import com.qf.dao.BookDao;
import com.qf.pojo.Book;
import com.qf.service.BookService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

/*
将service层配置给SpringIoc容器
service是调用dao
 */
@Service
public class BookServiceImpl implements BookService {
    /*
    使用自动装配将dao注入该属性
     */
    @Autowired
    private BookDao bookDao;
    @Override
    public boolean add(Book book) {
        return bookDao.insertBook(book)>0;
    }
}

(6)实现控制层

代码

package com.qf.controller;

import com.qf.pojo.Book;
import com.qf.service.BookService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

/*

 */
@RestController
@RequestMapping("/book")
public class BookController {
    @Autowired
    private BookService bookService;

    @RequestMapping("/add")
    public void addBook(Book book){
        boolean add = bookService.add(book);
        System.out.println(add?"添加成功":"添加失败");
    }

}

 (7)向数据库中添加一条数据

修改Book实体类日期字段:

package com.qf.pojo;

import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import lombok.ToString;
import org.springframework.format.annotation.DateTimeFormat;

import java.util.Date;

@Data
@NoArgsConstructor
@AllArgsConstructor
@ToString
public class Book {
    private int bookId;
    private String bookName;
    private String bookAuthor;
    private double bookPrice;
    private String bookImg;
    @DateTimeFormat(pattern="yyyy-MM-dd")
    private Date bookDate;
    private String bookDesc;
}

运行程序:

打开浏览器输入:

http://localhost:8080/book/add?bookName=java&bookAuthor=m&bookPrice=1&bookDate=2001-11-11&bookImg=a&bookDesc=111

如果页面刷新空白,则插入成功。

 

 

(8)思路梳理 

思路梳理:

1、数据库test里面有一张表tb_books

2、在application.properties修改数据库连接配置

 

3、创建实体类,使用lombok快速封装

4、Dao层编写接口

5、Service层写业务接口和实现类

 pml实现层与实现类

6、使用Mybatis实现mapper(映射)

7、在Controller层调用方法并实现业务功能

 8、启动项目,输入url和参数观察数据库是否插入成功

 

 

 

七、必备技巧

(1)开发环境热部署

debug=true

添加依赖

在pom.xml中添加依赖

代码:

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

 

 

代码:

server.port=8080
#热部署生效
spring.devtools.restart.enabled=true
#设置classpath目录下的NEB一INF文件夹内容修改不重启
spring.devtools.restart.additional-paths=src/main/java

#spring.devtools.restart.exclude=static/**


 在Advanced settings勾选alow auto-make

 

开启自动编译 

 

 完成上面两步就可以边写代码边看网页了。

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

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

相关文章

AutoSAR系列讲解 - AutoSAR标准文档概览

目录 一、文档下载 二、文档结构 三、文档内容 四、各部分介绍 1、Introduction and functional o 目录 一、文档下载 二、文档结构 三、文档内容 四、各部分介绍 1、Introduction and functional overview 2、Acronyms and abbreviations 3、Related documentati…

MySQL面试题--sql优化的经验

表的设计优化&#xff08;参考阿里开发手册《嵩山版》&#xff09; 比如设置合适的数值&#xff08;tinyint int bigint&#xff09;&#xff0c;要根据实际情况选择 比如设置合适的字符串类型&#xff08;char和varchar&#xff09;char定长效率高&#xff0c;varchar可变…

关于智慧消防建设的探究 安科瑞 许敏

【摘要】随着城市化发展步伐的不断加快&#xff0c;智慧城市的建设已经成为城市发展的重要目标&#xff0c;而智慧消防则是其重要组成部分&#xff0c;不容忽视。基于大数据时代背景下&#xff0c;实现智慧消防建设的时候&#xff0c;更加需要以信息化为导向&#xff0c;这样才…

从零开始 Spring Boot 45:FactoryBean

从零开始 Spring Boot 45&#xff1a;FactoryBean 图源&#xff1a;简书 (jianshu.com) 在前文中我介绍过 FactoryBean&#xff0c;本篇文章会更深入的介绍相关内容。 依赖注入 从一个简单示例开始&#xff0c;我们看使用FactoryBean定义的 Spring Bean 如何注入。 假设我们…

mysql数据库备份和恢复和日志管理

数据库备份和恢复和日志管理 一&#xff1a;数据库备份备份和恢复1.备份分类从物理与逻辑的角度&#xff0c;备份可分为从数据库的备份策略角度&#xff0c;备份可分为 2.常见的备份方法3.MySQL完全备份和恢复分类一&#xff1a;物理冷备份与恢复关闭MySQL数据库使用tar命令直接…

DJ5-1 链路层概述

目录 一、链路层的术语 二、链路层的类比 三、链路层提供的服务 四、链路层实现的位置 1、网络适配器 2、网络适配器工作过程 一、链路层的术语 ① 节点 (nodes)&#xff1a;主机和路由器 ② 链路 (links)&#xff1a;沿着通信路径连接相邻节点的通信信道 有线链路 (w…

locust学习教程(2)- 性能测试虚拟环境配置

前言 写这个是因为&#xff0c;好多专职自动化测试都不知道怎么配置虚拟&#xff0c;可想而知萌新们整个人都是懵的 1、安装pthon&#xff08;略&#xff09; 2、安装pycharm&#xff08;略&#xff09; 3、配置性能测试的虚拟环境 桌面新建目录 demolocust pycharm中 open …

Grdle版本的不同导致的一些差异

gradle版本是不断迭代升级的&#xff0c;升级后对有些配置是有影响的&#xff0c;比如对kotlin配置、上传maven的方式&#xff0c;特此记录一下 对kotlin配置的影响 我们主项目的gradle版本是6.3&#xff0c;对项目进行koltin配置的语法了&#xff0c;官方文档教程是一样的 …

计算机图形学-坐标系(坐标总汇)

建议买本书《计算机图形学》第四版 1 坐标系 1.1 在我们谈论坐标变换之前&#xff0c;我们必须对我们的坐标系做一个正式的定义。DirectX 使用的默认坐标系是左手坐标系。OpenGL 使用的默认坐标系是右手坐标系。 我们可以通过使用手对坐标系进行一个简单的判断。 左手坐标…

LiangGaRy-学习笔记-Day24

1、web服务介绍 1.1、Linux常见的web服务 httpd nginx tomcat 1.2、LAMP架构 L&#xff1a;CentOS CentOS7RHEL7等等 A&#xff1a;Apache apache&#xff1a;网页服务器 httpd服务 M&#xff1a;MySQL MySQL&#xff1a;关系型数据库 AB公司–>08年被SUN公司收购…

基于.Net6使用YoloV8的分割模型

前言 在目标检测一文中&#xff0c;我们学习了如何处理Onnx模型&#xff0c;并的到目标检测结果&#xff0c;在此基础上&#xff0c;本文实现基于.Net平台的实例分割任务。 执行YoloV8的分割任务后可以得到分割.pt模型。由于Python基本不用于工业软件的部署&#xff0c;最终还…

1.1 渲染流水线

整体流程 应用阶段&#xff1a;粗粒度剔除、进行渲染设置、准备基本数据、输出到几何阶段 几何阶段&#xff1a;顶点着色器、曲面细分、几何着色器、顶点裁剪、屏幕映射 光栅化阶段&#xff1a;三角形&#xff08;点/线&#xff09;设置、三角形&#xff08;点/线&#xff09…

基于android studio开发的火车票购票系统app,android移动开发课设,毕业设计

基于android studio开发的火车票购票系统app 项目概述 基于android studio开发实现火车票购票系统app 适用于android移动开发学习项目&#xff0c;课程设计&#xff0c;毕业设计等 开发环境及工具 开发工具&#xff1a;android studio 或者intellij idea专业版操作系统&…

最新大学计算机专业实习心得报告

最新大学计算机专业实习心得报告&#xff08;篇1&#xff09; 一、实习目的 通过理论联系实际&#xff0c;巩固所学的知识&#xff0c;提高处理实际问题的能力&#xff0c;为顺利毕业进行做好充分的准备&#xff0c;并为自己能顺利与社会环境接轨做准备。通过这次实习&#xff…

软件测试入门篇

软件测试含义 在规定条件下对程序进行操作&#xff0c;发现软件错误&#xff0c;衡量软件质量&#xff0c;对其是否能满足设计要求进行评估的过程 开发不做测试原因&#xff1a;测试力度&#xff0c;思维方式&#xff0c;关注度 计算机定义 一种可以自动高效进行技术操作的…

Debian 版本代号与《玩具总动员》

作为最受欢迎的 Linux 发行版之一&#xff0c;Debian 是许多其他发行版的基础&#xff0c;许多非常受欢迎的 Linux 发行版&#xff0c;例如 Ubuntu、Knoppix、PureOS 、Tails、Armbian 以及 Raspbian&#xff0c;都基于 Debian。 经过近 20 个月的开发&#xff0c;2023 年 6 月…

基于SpringBoot的大学生成长管理系统的设计与实现

摘 要 大学生成长管理系统是记录大学生在大学期间的成长记录史。它是为了促进学生成长、提升学习兴趣及其质量。系统是集辅导员、学生和管理员为核心的一个综合平台。 本系统采用Java编程语言&#xff0c;完成了大学生成长管理系统。系统的使用角色分为三个&#xff1a;管理员…

鉴源实验室丨HSM技术浅述

作者 | 徐奕华 上海控安可信软件创新研究院汽车网络安全组 来源 | 鉴源实验室 引言&#xff1a;2023年5月初&#xff0c;工业和信息化部装备工业一司组织全国汽车标准化技术委员会开展《汽车整车信息安全技术要求》等四项强制性国家标准的制修订[1]。这意味着车辆信息安全管理…

CPU调优 iostat命令

目录 一、命令描述 二、命令作用 三、命令 1.用法 2.命令参数 四、使用实例 1.CPU属性值说明 五、压力测试stress 1.stress介绍 2.stress参数 3.安装stress 四、实验 五、总结 一、命令描述 Linux 中的 iostat 是I/O statistics&#xff08;输入/输出统计&#xf…

毕业设计心得总结10篇

毕业设计心得总结1 201_年5月30日上午&#xff0c;我们的毕业论文答辩圆满结束了。当刘老师给我们送上人生的祝语时&#xff0c;一种即将离别的难舍之情油然而生&#xff0c;我开始眷恋培养我大学四年的母校&#xff0c;看着一张张熟悉的面孔&#xff0c;过去的欢乐和不快都烟消…