7天速成Springboot前后端分离项目——01

7天速成Springboot前后端分离项目——01

一、介绍项目结构
本项目为前后端分离项目:

前端: html+css+js+jquery+vue+Ajax,
后端: SpringBoot+Spring+SpringMVC+Mybatis+
	       Lombok+Mysql

二、开始前步骤—框架搭建

前端:Hbuilder
后台:IDEA 2018
数据库:navicat
mysql:5.6.24
jdk:1.8
Maven:3.6.2	

三、导入Lombok
方式有两种,
在这里插入图片描述

1、File–》settings–》Plugins–》Browse repositories --》搜索Lombok在线下载
在这里插入图片描述

2、从plugin官网或者git上下载与idea对应的Lombok jar包,然后File–》settings–》Plugins–》Install plugins from disk…,然后选择Lombok文件解压后的jar包即可
在这里插入图片描述

重启后,如果报错的话,采用以下操作:
File–》settings–》Build,Execution,Deployment–》Compiler–》Annotation Processors
在Annotation Processors右边的Enable annotation Processors打个勾apply–》ok就搞定了。

在这里插入图片描述

四、测试连接浏览器

UserController:

package com.video01.controller;

import com.video01.pojo.User;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;

import java.util.Arrays;
import java.util.List;

@Controller
public class UserController {

    @ResponseBody
    @RequestMapping("/test")
    public String testHello(){
        return "helloWorld";
    }

    @ResponseBody
    @RequestMapping("/testUser")
    public User testUser(){
        User user = new User("与其终","123");
        return user;
    }

    @ResponseBody
    @RequestMapping("/testList")
    public List<User> testList(){

        User[] ar = {
                new User("admin","123"),
                new User("admin","123"),
                new User("admin","123"),
                new User("admin","123"),
                new User("admin","123")
        };
        List<User> lists = Arrays.asList(ar);

        return lists;
    }
}

User类:
利用Lombok使用注解方法更快速构建实体类
@Data等同于getter/setter方法
@AllArgsConstructor等同于全参构造方法
@NoArgsConstructor等同于无参构造方法

package com.video01.pojo;

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

@Data
@AllArgsConstructor
@NoArgsConstructor
public class User {
    private String userName;
    private String password;
}

运行Video01Application,启动项目,输入127.0.0.1:8080/test或者localhost:8080/test来实现helloWorld功能。
效果图如下:
在这里插入图片描述

五、测试连接到数据库
步骤:

- 1.在resource目录下创建application.yml

配置内容:

driver-class 驱动程序
url:访问数据库连接
username:用户名
password:密码

在这里插入图片描述
如果遇到了出现乱码的情况,直接用以下代码解决(建议使用)
url: jdbc:mysql://localhost:3306/z?useUnicode=true&characterEncoding=utf8

- 2.Mybatis的Mapper

  • 1)在resource下创建mapper目录

在这里插入图片描述

  • 2)在mapper目录下创建UsertMapper.xml

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

在这里插入图片描述

  • 3)告诉SpringBoot的Mapper文件在哪里

     在application.yml里面加入下列语句:
     
     mybatis:
        mapper-locations: classpath:mapper/*Mapper.xml
    

    在这里插入图片描述

  • 4)实现DeptMapper类和DeptMapper.xml之间的映射关系

     A.namespace="com.video2.mapper.UserMapper"
     B.UserMapper.xml中id:selectAllByID要和UserMapper类的方法名相同
     C.写上参数类型 和返回值类型即可。
       parameterType="java.lang.Integer"
       resultType="com.video2.pojo.User
    
  • 5)到项目启动类中添加一个注解

      @MapperScan("com.video2.mapper")
      扫描mapper对应的类在哪里
    

在这里插入图片描述

  • 六、测试
    A.在Video2ApplicationTests这类中创建一个测试的方法
    并且加上@Test注解

    B.在Video2ApplicationTests加入注解 将
    DeptMapper注入到Spring容器

        @Resource
        DeptMapper deptMapper;
    

在这里插入图片描述

测试类代码:

package com.video02;

import com.video02.mapper.UserMapper;
import com.video02.pojo.User;
import org.junit.jupiter.api.Test;
import org.springframework.boot.test.context.SpringBootTest;

import javax.annotation.Resource;
import java.util.List;

@SpringBootTest
class Video02ApplicationTests {

    @Resource
    UserMapper userMapper;

    @Test
    public void testSelectAllByID(){
        User user = userMapper.selectAllByID(2);
        System.out.println(user);
    }
     @Test
    void contextLoads() {
    }
}

查询到的效果为:
在这里插入图片描述

下图我数据库中的数据,可以和效果图对比一下,可以发现是可以准确的查询到数据的,意味着操作正确,可以继续进行下一步操作了。
在这里插入图片描述

七、完善简单的增删查改功能(附代码)
resources/application.yml:
如果是手动敲代码的话,需要注意的是yaml的格式,冒号后面是有个空格的!

spring:
  datasource:
    driver-class-name: com.mysql.cj.jdbc.Driver
    username: root
    password:
    url: jdbc:mysql://localhost:3306/z?useUnicode=true&characterEncoding=utf8

mybatis:
  mapper-locations: classpath:mapper/*Mapper.xml

resources/mapper/UserMapper.xml

<?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.video02.mapper.UserMapper">

    <select id="selectAllByID" parameterType="java.lang.Integer" resultType="com.video02.pojo.User">
        select * from user where id = #{id}
    </select>

    <select id="selectAll" resultType="com.video02.pojo.User">
        select * from user
    </select>

    <insert id="insert" parameterType="com.video02.pojo.User">
        insert into user(id,number,name,classes) values(#{id},#{number},#{name},#{classes})
    </insert>

    <update id="update" parameterType="com.video02.pojo.User">
        update user set number = #{number},name = #{name},classes = #{classes} where id = #{id}
    </update>

    <delete id="deleteAll" parameterType="java.lang.Integer" >
        delete from user where id = #{id}
    </delete>

</mapper>

com.video02/pojo/User

package com.video02.pojo;

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

import javax.annotation.sql.DataSourceDefinition;

@Data
@AllArgsConstructor
@NoArgsConstructor
public class User {

    private Integer id;
    private String number;
    private String name;
    private String classes;
}

com.video02/mapper/UserMapper

package com.video02.mapper;

import com.video02.pojo.User;

import java.util.List;

public interface UserMapper {
    public User selectAllByID(Integer id);

    public List<User> selectAll();

    public int deleteAll(Integer id);

    public void insert(User user);

    public void update(User user);
}

Video02Application启动类:

package com.video02;

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

@MapperScan("com.video02.mapper")
@SpringBootApplication
public class Video02Application {

    public static void main(String[] args) {
        SpringApplication.run(Video02Application.class, args);
    }
}

Video02ApplicationTests测试类:

package com.video02;

import com.video02.mapper.UserMapper;
import com.video02.pojo.User;
import org.junit.jupiter.api.Test;
import org.springframework.boot.test.context.SpringBootTest;

import javax.annotation.Resource;
import java.util.List;

@SpringBootTest
class Video02ApplicationTests {

    @Resource
    UserMapper userMapper;

    @Test
    public void testSelectAllByID(){
        User user = userMapper.selectAllByID(3);
        System.out.println(user);
    }

    @Test
    public void testSelectAll(){
        List<User> lists = userMapper.selectAll();
        for (User user:lists) {
            System.out.println(user);
        }
    }

    @Test
    public void testUpdate(){
        User user = new User(1,"Z1404","阿琪","2班");
        userMapper.update(user);
    }

    @Test
    public void testDeleteAll(){
        int id = userMapper.deleteAll(5);
        System.out.println(id);
    }

    @Test
    public void insert(){
        User user = new User(3,"Z1202","yuki","1班");
        userMapper.insert(user);
    }

    @Test
    void contextLoads() {
    }

}
  • 八、写在最后的话——总结
    第一阶段就完成了,基本框架搭建完毕,各个枢纽连通完成,这个过程中遇到了许多小问题,都耐心解决好了,希望看到此文的小伙伴,也可以坚持下去,千万不要放弃哦~
    另外这个项目,会放在csdn的下载里面,还有所在的qq群,有需要的小伙伴可以加群自取哦~

我是与其终,一个风起云涌的女孩子。
以下是我的公众号,主要写的是有关于前段后台数据库,面试技巧,学习方法,职场心得等,感兴趣的可以关注一下哦,期待我们一起进步~
在这里插入图片描述
很高兴你能看到我的博客,希望能对你有所帮助。
qq群:可直接扫码进qq群,或者输入群号670983672。
在这里插入图片描述