Springboot框架实现简单的CRUD(增删改查)

本文通过Springboot框架展示了如何实现数据表的增删改查功能,包括创建项目、生成DAO和Model、编写Service接口及实现、创建VO类以及编写Controller进行测试。重点讨论了VO的作用和使用,以及借助Lombok简化编码。
摘要由CSDN通过智能技术生成

创建项目

前面讲过如何在IDEA中创建springboot见我的博客创建一个springboot空项目,这里不再赘述。

创建数据表

一张表是用户信息表:test_db,如下图:
在这里插入图片描述
其中包含id,用户名,密码,学校id和性别这几个字段。
另一张表为是学校名字表:school_name,如下图:
在这里插入图片描述
其中id对应着test_db中的school_id,由此表可以查询得到学校的名称。

生成数据表dao和model

如何自动生成dao和model在我的上一篇博客:创建一个springboot空项目,这里不再赘述。生成后的项目结构如下:在这里插入图片描述

编写service层接口

import com.example.demo4.model.TestDb;

import java.util.List;

public interface IUserService {
   

    /**
     * 通过id精准查询
     * @param id
     * @return
     */
    Object read(Integer id);

    /**
     * 通过用户名查询出list
     * @param username
     * @return
     */
    Object list(String username);

    /**
     * 编辑testdb
     * @param testDb
     * @return
     */
    Object edit(TestDb testDb);

    /**
     * 通过ids列表删除
     * @param ids
     * @return
     */
    Object del(List<Integer> ids);

    /**
     * 新增一个testdb
     * @param testDb
     * @return
     */
    Object add(TestDb testDb);
}

编写VO(非必要)

首先介绍一下什么VO,为什么要写VO?
VO:value object 值对象 / view object 表现层对象。
1 .主要对应页面显示(web页面/swt、swing界面)的数据对象。
2 .可以和表对应,也可以不,这根据业务的需要
说得直白一点,就是把自己想显示的数据打包成一个been送个前端去,而不是一股脑的全返回给前端。
举个例子,在这个项目中,我想输入id之后返回的结果只有user_name和school_name,其他的属性如:性别,密码,id等等都用不着的就不需要了。

编写vo类:

package com.example.demo4.vo;

import lombok.Data;

@Data
public class TestDbVO {
   
    //基础字段
    private String username;
    private  Integer schoolId;
    //vo字段
    private String schoolName;
}

其中有几点值得注意的:

其一是testdb中有的字段,叫做基础字段,testdb中没有的属性(来自其他的数据表),这里是schoolname,则叫做vo字段,两者有何区别,在后面会演示。

其二是这里的属性名字和数据库的命名不同,java是采用的驼峰命名法,而数据库则是用下划线区分开,如数据库中school_name,在这里可以看到我写的是schoolName。但是在与数据库连接是时候是可以匹配的。

其三是我这里使用了一个@Data的标签,这并不是Springboot自带的标签,而是我在IDEA上下载安装了一个叫lombok的组件,然后添加他的依赖,他的作用是帮助我们自动生成get(),set(),和toString()方法,让我们编码速度更快,代码更加清爽,lombok的下载安装步骤和依赖见Lombok的使用详解与插件安装

编写接口实现类

新建一个 类去实现接口,在重写方法之前,编写两个工具方法:一个是单个的testdb类转换成vo,另一个是list<testdb>转化成vo的list集合:

package com.example.demo4.service.impl;

import com.example.demo4.dao.SchoolNameMapper;
import com.example.demo4.dao.TestDbMapper;
import com.example.demo4.model.SchoolName;
import com.example.demo4.model.SchoolNameExample;
import com.example.demo4.model.TestDb;
import com.example.demo4.service.IUserService;
import com.example.demo4.vo.TestDbVO;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import java.util.*;

@Service
public class UserService implements IUserService {
   

    @Autowired
    private TestDbMapper dbMapper;
    @Autowired
    private SchoolNameMapper schoolNameMapper;
    @Override
    public Object read(Integer id) {
   
        return null;
    }

    @Override
    public Object list(String username) {
   
        return null;
    }

    @Override
    public Object edit(TestDb testDb) {
   
        return null;
    }

    @Override
    public Object del(List<Integer> ids) {
   
        return null;
    }

    @Override
    public Object add
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值