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.User5)到项目启动类中添加一个注解
@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。