Day 01
SpringBoot+Vue实现增删改查学习笔记
0.导入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 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.example</groupId>
<artifactId>demo</artifactId>
<version>1.0-SNAPSHOT</version>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.1.0.RELEASE</version>
</parent>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
<java.version>1.8</java.version>
</properties>
<dependencies>
<!--Lombok-->
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
</dependency>
<!--添加Springmvc依赖-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<!-- springBoot JPA的起步依赖 -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-jpa</artifactId>
</dependency>
<!--mysql-->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<configuration>
<fork>true</fork>
</configuration>
</plugin>
</plugins>
</build>
<repositories>
<repository>
<id>public</id>
<name>aliyun nexus</name>
<url>http://maven.aliyun.com/nexus/content/groups/public/</url>
<releases>
<enabled>true</enabled>
</releases>
</repository>
</repositories>
</project>
1.创建springboot项目
这里直接使用脚手架即可
链接:https://pan.baidu.com/s/1yxwFJ3ZDj52HIyIfTVbrow?pwd=1t8o
提取码:1t8o
2.新建数据库和表
CREATE TABLE user
(
id
BIGINT ( 20 ) NOT NULL AUTO_INCREMENT,
name
VARCHAR ( 20 ) DEFAULT NULL COMMENT ‘姓名’,
sex
VARCHAR ( 20 ) DEFAULT NULL COMMENT ‘性别’,
age
INT ( 11 ) DEFAULT NULL COMMENT ‘年龄’,
address
VARCHAR ( 255 ) DEFAULT NULL COMMENT ‘家庭地址’,
phone
VARCHAR ( 20 ) DEFAULT NULL COMMENT ‘电话’,
create_time
VARCHAR ( 20 ) DEFAULT NULL COMMENT ‘创建时间’,
PRIMARY KEY ( id
)
) ENGINE = INNODB AUTO_INCREMENT = 4 DEFAULT CHARSET = utf8;
插入数据
3.编写实体类
package com.example.entity;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import javax.persistence.*;
@Data
@AllArgsConstructor
@NoArgsConstructor
@Table(name = "user")
@Entity
public class User {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;
private String name;
private Integer age;
private String sex;
private String address;
private String phone;
@Column(name = "create_time")
private String createTime;
}
@Table里面数据爆红 点击右边的database 连接数据库即可
4.UserDao接口
这里我们用JAP框架 <>里面的参数依次是是实体类 主键.
@Repository
public interface UserDao extends JpaRepository<User,Long> {
}
5.UserService.java
package com.example.service;
import com.example.dao.UserDao;
import com.example.entity.User;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.domain.Page;
import org.springframework.data.domain.PageRequest;
import org.springframework.data.domain.Sort;
import org.springframework.stereotype.Service;
@Service
public class UserService {
@Autowired
private UserDao userDao;
/*Jpa自有的api 不用创建xml了*/
/* 1.增加和修改用save即可 都是传user进来
2.新增传id 修改不传id
3.框架自动识别不用管
*/
public void save(User user){
userDao.save(user);
}
/*删除*/
public void del(Long id){
userDao.deleteById(id);
}
/*通过id查找用户*/
public User findByID(Long id){
return userDao.findById(id).orElse(null);
// 查询出来 如果为空返回null
// 不为空则返回user对象
}
/*分页查找用户*/
public Page<User> findPage(Integer pageNum, Integer pageSize, String name){
/*倒序查询*/
Sort sort = Sort.by(Sort.Direction.DESC,"create_time");
// 构建分页参数
PageRequest request = PageRequest.of(pageNum-1,pageSize);
return userDao.findNameLike(name,request);
}
}
这里在UserDao新建一个方法 如图
package com.example.dao;
import com.example.entity.User;
import org.springframework.data.domain.Page;
import org.springframework.data.domain.PageRequest;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.data.jpa.repository.Query;
import org.springframework.stereotype.Repository;
@Repository
public interface UserDao extends JpaRepository<User,Long> {
/*nativeQuery表明为原生的sql*/
@Query(value = "select * from user where name like %?1%" , nativeQuery = true)
Page<User> findNameLike(String name, PageRequest request);
}
6.UserController.java
package com.example.controller;
import com.example.common.Result;
import com.example.entity.User;
import com.example.service.UserService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.domain.Page;
import org.springframework.web.bind.annotation.*;
@RestController
@RequestMapping("/user")
public class UserController {
@Autowired
UserService userService;
/*新增用户*/
@PostMapping
public Result add(@RequestBody User user){
userService.save(user);
return Result.success();
}
/*更新用户*/
@PutMapping
public Result update(@RequestBody User user){
userService.save(user);
return Result.success();
}
@GetMapping("/{id}")
public Result<User> findByID(@PathVariable Long id){
return Result.success(userService.findByID(id));
}
@GetMapping
public Result<Page<User>> findPage(@RequestParam (required = false,value = "1")Integer pageNum,
@RequestParam (required = false,value = "10")Integer pageSize,
@RequestParam (required = false) String name){
return Result.success(userService.findPage(pageNum, pageSize, name));
}
}
## 7.修改数据库配置
```java
spring:
datasource:
driver-class-name: com.mysql.cj.jdbc.Driver
username: root
password: root
url: jdbc:mysql://localhost:3306/mytest?useUnicode=true&characterEncoding=utf-8&allowMultiQueries=true&useSSL=false&serverTimezone=GMT%2b8
server:
port: 8081
## 8.写一个简单的前端页面 index.html
```java
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>用户信息</title>
</head>
<body>
<h2>用户信息</h2>
</body>
</html>