SpringBoot+Vue实现增删改查学习笔记

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>

9.项目结构

在这里插入图片描述

10.未完待续

  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
Spring BootVue.js可以很好地搭配使用,实现前后端分离的Web应用程序。以下是一个简单的例子,演示如何使用Spring BootVue.js实现增删改查功能。 1. 创建一个Spring Boot项目,包含Spring Web和Spring Data JPA依赖。创建一个实体类和一个Repository接口,用于操作数据库。 ```java @Entity public class User { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) private Long id; private String name; private String email; // 省略getter和setter } @Repository public interface UserRepository extends JpaRepository<User, Long> { } ``` 2. 创建一个RESTful API,使用Spring MVC和Spring Data REST实现,用于获取、创建、更新和删除用户。 ```java @RestController @RequestMapping("/api/users") public class UserController { @Autowired private UserRepository userRepository; @GetMapping public List<User> findAll() { return userRepository.findAll(); } @PostMapping public User create(@RequestBody User user) { return userRepository.save(user); } @PutMapping("/{id}") public User update(@PathVariable Long id, @RequestBody User user) { user.setId(id); return userRepository.save(user); } @DeleteMapping("/{id}") public void delete(@PathVariable Long id) { userRepository.deleteById(id); } } ``` 3. 创建一个Vue.js应用程序,使用axios库与后端进行通信。创建一个组件,用于显示用户列表,以及一个表单组件,用于创建或更新用户。 ```html <template> <div> <table> <tr> <th>ID</th> <th>Name</th> <th>Email</th> <th>Actions</th> </tr> <tr v-for="user in users" :key="user.id"> <td>{{ user.id }}</td> <td>{{ user.name }}</td> <td>{{ user.email }}</td> <td> <button @click="edit(user)">Edit</button> <button @click="remove(user)">Remove</button> </td> </tr> </table> <form v-if="editing" @submit.prevent="save"> <input type="text" v-model="user.name" placeholder="Name"> <input type="email" v-model="user.email" placeholder="Email"> <button type="submit">{{ editing.id ? 'Update' : 'Create' }}</button> </form> </div> </template> <script> import axios from 'axios'; export default { data() { return { users: [], user: {}, editing: false, }; }, methods: { async fetchUsers() { const { data } = await axios.get('/api/users'); this.users = data; }, async save() { if (this.editing.id) { await axios.put(`/api/users/${this.editing.id}`, this.user); } else { await axios.post('/api/users', this.user); } this.editing = false; this.user = {}; await this.fetchUsers(); }, async remove(user) { await axios.delete(`/api/users/${user.id}`); await this.fetchUsers(); }, edit(user) { this.editing = true; this.user = { ...user }; }, }, async mounted() { await this.fetchUsers(); }, }; </script> ``` 4. 在Spring Boot应用程序中配置静态资源路径,将Vue.js应用程序打包为静态资源,并在Spring Boot应用程序中提供静态资源服务。 ```properties spring.mvc.static-path-pattern=/static/** spring.resources.static-locations=classpath:/static/ ``` 5. 打包Vue.js应用程序,并将生成的dist目录复制到Spring Boot应用程序的静态资源目录中。 6. 运行Spring Boot应用程序,访问http://localhost:8080/static/index.html即可看到用户列表和表单。现在可以使用Vue.js应用程序与后端进行交互,实现增删改查功能了。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值