Sprngboot框架实现简单的增删改查
创建项目
前面讲过如何在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