
首先要新建一个SpringBoot项目,要选择web的项目。然后初始化完项目后,我们在pom.xml中添加需要的依赖。
把你的配置下的依赖换成我这个。
4、创建业务接口org.springframework.boot spring-boot-starter-web org.springframework.boot spring-boot-starter-test test org.mybatis.spring.boot mybatis-spring-boot-starter 2.2.0 com.alibaba druid 1.1.9 mysql mysql-connector-java runtime org.projectlombok lombok true io.springfox springfox-boot-starter 3.0.0 org.springframework.boot spring-boot-maven-plugin src/main/java ** @Data public class Book { private int id; private String bookName; private String author; }
在包service下面增加一个BookService.java类,主要放业务的接口,可供controller层调用。
package com.mjc.book.service;
import com.mjc.book.model.Book;
import java.util.List;
public interface BookService {
List findAll();
void creatBook(Book book);
void updateBook(Book book);
void deleteBook(int id);
}
5、业务实现类
在service包里再新建一个Impl包,主要放业务实现类,增加一个BookServiceImpl.java类,继承service接口。
package com.mjc.book.service.Impl;
import com.mjc.book.mapper.BookMapper;
import com.mjc.book.model.Book;
import com.mjc.book.service.BookService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.List;
@Service
public class BookServiceImpl implements BookService {
@Autowired
BookMapper bookMapper;
@Override
public List findAll() {
return bookMapper.findAll();
}
@Override
public void creatBook(Book book) {
bookMapper.insert(book);
}
@Override
public void updateBook(Book book) {
bookMapper.update(book);
}
@Override
public void deleteBook(int id) {
bookMapper.delete(id);
}
}
6、 数据库接口类
在mapper包下增加一个接口类BookMapper.java 类
package com.mjc.book.mapper;
import com.mjc.book.model.Book;
import org.apache.ibatis.annotations.Mapper;
import java.util.List;
@Mapper
public interface BookMapper {
List findAll();
void insert(Book book);
void update(Book book);
int delete(int id);
}
7、xml数据库操作
同样,在mapper包下增加一个xml配置BookMapper.xml , BookMapper接口的方法就是xml中增删改查对应的id。
8、接口类
在写接口类之前,我们要先写一个返回类,对返回的格式进行统一的封装。在util包中新建一个Result.java
package com.mjc.book.util;
import lombok.Data;
import java.io.Serializable;
@Data
public class Result implements Serializable {
//响应码
private int code;
private Object obj;
public Result(int code) {
this.code = code;
}
public Result() {
}
public Result success(int code, Object object){
Result result = new Result();
result.setCode(code);
result.setObj(object);
return result;
}
public int getCode() {
return code;
}
public void setCode(int code) {
this.code = code;
}
}
然后再新建一个controller包,在包中新建一个controller.java类。
package com.mjc.book.controller;
import com.mjc.book.model.Book;
import com.mjc.book.service.BookService;
import com.mjc.book.util.Result;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiImplicitParam;
import io.swagger.annotations.ApiImplicitParams;
import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.bind.annotation.RestController;
import java.util.List;
@Api(tags = "图书管理" )
@RestController
@RequestMapping(value = "/book")
public class BookController {
@Autowired
BookService bookService;
@ApiOperation(value = "获取所有的书", notes = "")
@GetMapping(value = "/list")
public Result bookList(){
List all = bookService.findAll();
return new Result().success(200, all);
}
@ApiOperation(value = "添加图书", notes = "")
@PostMapping(value = "/save")
public Result bookSave(@RequestBody Book book){
bookService.creatBook(book);
return new Result().success(200, "成功");
}
@ApiOperation(value = "更新图书", notes = "")
@PostMapping(value = "/update")
public Result bookUpdate(@RequestBody Book book){
bookService.updateBook(book);
return new Result().success(200, "成功");
}
@ApiOperation(value = "删除图书", notes = "")
@PostMapping(value = "/delete/{id}")
public Result bookDelete(@PathVariable(value = "id") int id){
bookService.deleteBook(id);
return new Result().success(200, "成功");
}
}
9、接入Swagger
我这里引入了Swagger接口文档,依赖已经在前面添加了,现在你要在启动类上加一个注解即可。
package com.mjc.book;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import springfox.documentation.oas.annotations.EnableOpenApi;
@EnableOpenApi
@SpringBootApplication
public class BookApplication {
public static void main(String[] args) {
SpringApplication.run(BookApplication.class, args);
}
}
源码我已上传到gitee上,地址为:https://gitee.com/xyhwh/book-demo