springboot快速实现CRUD

简介:用springboot基于maven工程,利用三层架构并整合SSM,快速实现一个简易的RESTFUL风格的CRUD业务。

1.环境搭建

因为是springboot,所以项目的搭建非常简便:
新建工程后,选择spring Initializr在这里插入图片描述
项目的基本结构如下:
在这里插入图片描述
HelloApplicaton,class是程序的入口,只需要运行该主程序,服务就会被开启。
在这里插入图片描述
这一系列的自动装配,都得益于上方的注解。不过该注解只会去扫描该类所在包及其子包下的注解,所以这个类的位置如果放的不好,会导致注解无法被读取(可以通过手动配置来指定要扫描的类)。
在这里插入图片描述

2.模块简介

Java代码部分,和以前的SSM区别不大。只不过SSM的配置被大大的简化,可以用直接使用注解进行快速开发。


页面资源部分,springboot项目是是分了2块,一个是纯静态资源,如HTML,CSS,js等。而动态的部分,则放在了templates文件夹中,springboot推荐使用thymeleaf模板引擎来整合动态数据和静态页面,本质上依然是一个HTML文件。引入thymeleaf依赖后,放在该文件夹中的HTML文件,就可以使用其相关语法,进行数据的展示,流程的控制等(类似于jsp的作用)。


配置文件部分,不必再写繁杂的xml配置,boot提供了一个名为application.properties的全局配置文件,可以在里面进行很多的SSM及服务器的相关配置。(如果想进行以前MVC或Sping的配置,也可以再写专门的配置类。)
除了application.properties,还可以使用application.yml,该文件的功能和前者相同,但是有更简洁的写法,二者配置可以互补,在冲突时,yml优先级更高。
这里使用了引入开发时配置文件的方式,在主配置文件application.yml中,声明要激活application-dev.yml
在这里插入图片描述
application-dev.yml,就可以写一些具体的配置了。


pom.xml如下:

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>
    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>2.2.6.RELEASE</version>
        <relativePath/> <!-- lookup parent from repository -->
    </parent>
    <groupId>com.example</groupId>
    <artifactId>hello</artifactId>
    <version>0.0.1-SNAPSHOT</version>
    <name>hello</name>
    <description>Demo project for Spring Boot</description>

    <properties>
        <java.version>1.8</java.version>
    </properties>

    <dependencies>
        
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-thymeleaf</artifactId>
        </dependency>


        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-jdbc</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>
        <dependency>
            <groupId>org.mybatis.spring.boot</groupId>
            <artifactId>mybatis-spring-boot-starter</artifactId>
            <version>2.1.2</version>
        </dependency>

        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <scope>runtime</scope>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
            <exclusions>
                <exclusion>
                    <groupId>org.junit.vintage</groupId>
                    <artifactId>junit-vintage-engine</artifactId>
                </exclusion>
            </exclusions>
        </dependency>


    </dependencies>

    <build>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
            </plugin>
        </plugins>
    </build>

</project>

3.三层架构和SSM框架

持久层

由于要使用mybatis连接数据库,所以数据源的设置还是必不可少的。我们直接写在上面提高过的application-dev.yml中:
在这里插入图片描述
配置完后,就可以使用mybatis开发持久层了:
在这里插入图片描述

业务层

由于boot帮我们把相关配置都自动配置好了,所以可以直接使用注解进行开发。这里没什么特别的处理,就是简单的调用Spring给我们持久层对象,调用相对应的方法。
在这里插入图片描述

控制层

MVC的相关注解,也是可以使用的,不过我们这里使用的RESTFUL风格进行的映射。也就是说,我们对于增删改查,使用的是同一个路径,但是请求该路径的方式是不同的。查找是get,添加是post,修改是put,删除是delete。
在这里插入图片描述
但是也可以看出,同样都是查询,有查询个人和查询全部两种,那么怎么区分这两种呢?就是利用URL地址进行传参。这里并不是通过 ? 进行参数的封装,而是使用下级的路径,当成参数,从而再被控制层程序获取,比如查询单人
在这里插入图片描述
当我们输入http://localhost:8080/stu并以get方式访问时,走的就是上面不含任何参数的处理程序(即查询所有)。而如果输入http://localhost:8080/stu/1,此时虽然提交方式还是get,但是URL地址是不一样的,所以可以做出区分。我们只需要使用@PathVariable注解,把URL上的值,给封装到被注解的变量中(图中就是方法的形参 —— id)。
由于form表单只能允许get和post方式提交,所以要使用工具类进行一个欺骗。而这个工具类是springboot帮我们提供好的,只需要在配置文件中开启即刻:
在这里插入图片描述
开启后,在相应的表单中,添加一个input标签,属性name取值为_method,value值为想要提交的方式。
在这里插入图片描述
再来看一个查询所有的详细代码:
在这里插入图片描述

4.页面展示

首页的功能如下:
在这里插入图片描述
数据库数据如下:
在这里插入图片描述


查询所有

在这里插入图片描述
在这里插入图片描述


添加

在这里插入图片描述
在这里插入图片描述


修改

在这里插入图片描述
在这里插入图片描述


删除

在这里插入图片描述
在这里插入图片描述


最后再看一个通过id查询单个记录
我们直接输入在这里插入图片描述
回车后,页面如下,这里直接返回的响应体:
在这里插入图片描述
代码如下:
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值