可信网站是否必须做,手机项目工作室,公司广告墙设计,合肥市城乡建设局和住建局官网文章目录 前言1.设计创建数据库表tbl_book2.创建新的SpringBoot模块#xff0c;勾选相关依赖3. 添加SpringBoot创建项目时没有提供的相关坐标4.根据数据库表创建实体类Book5.编写dao层操作BookDao6.编写Service服务层接口BookService7.编写服务层实现类BookServiceImpl8.编写B… 文章目录 前言1.设计创建数据库表tbl_book2.创建新的SpringBoot模块勾选相关依赖3. 添加SpringBoot创建项目时没有提供的相关坐标4.根据数据库表创建实体类Book5.编写dao层操作BookDao6.编写Service服务层接口BookService7.编写服务层实现类BookServiceImpl8.编写Book模块Controller层BookController9.状态码类相关设计.对比基于Spring的ssm整合案例 总结 前言
为了巩固所学的知识作者尝试着开始发布一些学习笔记类的博客方便日后回顾。当然如果能帮到一些萌新进行新技术的学习那也是极好的。作者菜菜一枚文章中如果有记录错误欢迎读者朋友们批评指正。 博客的参考源码可以在我主页的资源里找到如果在学习的过程中有什么疑问欢迎大家在评论区向我提出
建议先去浏览本人ssm专栏发布的ssm快速入门案例一二后再阅读本文章 四、基于SpringBoot的SSM整合案例
1.设计创建数据库表tbl_book
-- ----------------------------
-- Table structure for tbl_book
-- ----------------------------
DROP TABLE IF EXISTS tbl_book;
CREATE TABLE tbl_book (id int(11) NOT NULL AUTO_INCREMENT,type varchar(20) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,name varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,description varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,PRIMARY KEY (id) USING BTREE
) ENGINE InnoDB AUTO_INCREMENT 13 CHARACTER SET utf8 COLLATE utf8_general_ci ROW_FORMAT Dynamic;-- ----------------------------
-- Records of tbl_book
-- ----------------------------
INSERT INTO tbl_book VALUES (1, 计算机理论, Spring实战 第5版, Spring入门经典教程深入理解Spring原理技术内幕);
INSERT INTO tbl_book VALUES (2, 计算机理论, Spring 5核心原理与30个类手写实战, 十年沉淀之作手写Spring精华思想);
INSERT INTO tbl_book VALUES (3, 计算机理论, Spring 5 设计模式, 深入Spring源码剖析Spring源码中蕴含的10大设计模式);
INSERT INTO tbl_book VALUES (4, 计算机理论, Spring MVCMyBatis开发从入门到项目实战, 全方位解析面向Web应用的轻量级框架带你成为Spring MVC开发高手);
INSERT INTO tbl_book VALUES (5, 计算机理论, 轻量级Java Web企业应用实战, 源码级剖析Spring框架适合已掌握Java基础的读者);
INSERT INTO tbl_book VALUES (6, 计算机理论, Java核心技术 卷I 基础知识原书第11版, Core Java 第11版Jolt大奖获奖作品针对Java SE9、10、11全面更新);
INSERT INTO tbl_book VALUES (7, 计算机理论, 深入理解Java虚拟机, 5个维度全面剖析JVM大厂面试知识点全覆盖);
INSERT INTO tbl_book VALUES (8, 计算机理论, Java编程思想第4版, Java学习必读经典,殿堂级著作赢得了全球程序员的广泛赞誉);
INSERT INTO tbl_book VALUES (9, 计算机理论, 零基础学Java全彩版, 零基础自学编程的入门图书由浅入深详解Java语言的编程思想和核心技术);
INSERT INTO tbl_book VALUES (10, 市场营销, 直播就该这么做主播高效沟通实战指南, 李子柒、李佳琦、薇娅成长为网红的秘密都在书中);
INSERT INTO tbl_book VALUES (11, 市场营销, 直播销讲实战一本通, 和秋叶一起学系列网络营销书籍);
INSERT INTO tbl_book VALUES (12, 市场营销, 直播带货淘宝、天猫直播从新手到高手, 一本教你如何玩转直播的书10堂课轻松实现带货月入3W); 2.创建新的SpringBoot模块勾选相关依赖 3. 添加SpringBoot创建项目时没有提供的相关坐标
dependencygroupIdcom.alibaba/groupIdartifactIddruid/artifactIdversion1.1.16/version/dependency4.根据数据库表创建实体类Book
public class Book {//此处省略gettr、setter和toString方法private Integer id;private String type;private String name;private String description;
5.编写dao层操作BookDao
Mapper
public interface BookDao {Insert(insert into tbl_book (type,name,description) values(#{type},#{name},#{description}))public int save(Book book);Update(update tbl_book set type #{type}, name #{name}, description #{description} where id #{id})public int update(Book book);Delete(delete from tbl_book where id #{id})public int delete(Integer id);Select(select * from tbl_book where id #{id})public Book getById(Integer id);Select(select * from tbl_book)public ListBook getAll();
}
6.编写Service服务层接口BookService
Transactional
public interface BookService {/*** 保存* param book* return*/public boolean save(Book book);/*** 修改* param book* return*/public boolean update(Book book);/*** 按id删除* param id* return*/public boolean delete(Integer id);/*** 按id查询* param id* return*/public Book getById(Integer id);/*** 查询全部* return*/public ListBook getAll();
}
7.编写服务层实现类BookServiceImpl
Service
public class BookServiceImpl implements BookService {Autowiredprivate BookDao bookDao;public boolean save(Book book) {return bookDao.save(book) 0;}public boolean update(Book book) {return bookDao.update(book) 0;}public boolean delete(Integer id) {return bookDao.delete(id) 0;}public Book getById(Integer id) {if(id 1){throw new BusinessException(Code.BUSINESS_ERR,请不要使用你的技术挑战我的耐性!);}
// //将可能出现的异常进行包装转换成自定义异常
// try{
// int i 1/0;
// }catch (Exception e){
// throw new SystemException(Code.SYSTEM_TIMEOUT_ERR,服务器访问超时请重试!,e);
// }return bookDao.getById(id);}public ListBook getAll() {return bookDao.getAll();}
}
8.编写Book模块Controller层BookController
RestController
RequestMapping(/books)
public class BookController {Autowiredprivate BookService bookService;PostMappingpublic Result save(RequestBody Book book) {boolean flag bookService.save(book);return new Result(flag ? Code.SAVE_OK:Code.SAVE_ERR,flag);}PutMappingpublic Result update(RequestBody Book book) {boolean flag bookService.update(book);return new Result(flag ? Code.UPDATE_OK:Code.UPDATE_ERR,flag);}DeleteMapping(/{id})public Result delete(PathVariable Integer id) {boolean flag bookService.delete(id);return new Result(flag ? Code.DELETE_OK:Code.DELETE_ERR,flag);}GetMapping(/{id})public Result getById(PathVariable Integer id) {Book book bookService.getById(id);Integer code book ! null ? Code.GET_OK : Code.GET_ERR;String msg book ! null ? : 数据查询失败请重试;return new Result(code,book,msg);}GetMappingpublic Result getAll() {ListBook bookList bookService.getAll();Integer code bookList ! null ? Code.GET_OK : Code.GET_ERR;String msg bookList ! null ? : 数据查询失败请重试;return new Result(code,bookList,msg);}
}
9.状态码类相关设计
Code类
package org.example.controller;public class Code {public static final Integer SAVE_OK 20011;public static final Integer DELETE_OK 20021;public static final Integer UPDATE_OK 20031;public static final Integer GET_OK 20041;public static final Integer SAVE_ERR 20010;public static final Integer DELETE_ERR 20020;public static final Integer UPDATE_ERR 20030;public static final Integer GET_ERR 20040;public static final Integer SYSTEM_ERR 50001;public static final Integer SYSTEM_TIMEOUT_ERR 50002;public static final Integer SYSTEM_UNKNOW_ERR 59999;public static final Integer BUSINESS_ERR 60002;}
ProjectExceptionAdvice类
RestControllerAdvice
public class ProjectExceptionAdvice {ExceptionHandler(SystemException.class)public Result doSystemException(SystemException ex){//记录日志//发送消息给运维//发送邮件给开发人员,ex对象发送给开发人员return new Result(ex.getCode(),null,ex.getMessage());}ExceptionHandler(BusinessException.class)public Result doBusinessException(BusinessException ex){return new Result(ex.getCode(),null,ex.getMessage());}ExceptionHandler(Exception.class)public Result doOtherException(Exception ex){//记录日志//发送消息给运维//发送邮件给开发人员,ex对象发送给开发人员return new Result(Code.SYSTEM_UNKNOW_ERR,null,系统繁忙请稍后再试);}
}
Result类
public class Result {//此处省略getter、setter方法private Object data;private Integer code;private String msg;public Result() {}public Result(Integer code,Object data) {this.data data;this.code code;}public Result(Integer code, Object data, String msg) {this.data data;this.code code;this.msg msg;}public Object getData() {return data;}
}
BusinessException类
public class BusinessException extends RuntimeException{private Integer code;public Integer getCode() {return code;}public void setCode(Integer code) {this.code code;}public BusinessException(Integer code, String message) {super(message);this.code code;}public BusinessException(Integer code, String message, Throwable cause) {super(message, cause);this.code code;}}
SystemException类
public class SystemException extends RuntimeException{private Integer code;public Integer getCode() {return code;}public void setCode(Integer code) {this.code code;}public SystemException(Integer code, String message) {super(message);this.code code;}public SystemException(Integer code, String message, Throwable cause) {super(message, cause);this.code code;}}
.对比基于Spring的ssm整合案例
详情可以去关注作者的ssm专栏 总结
欢迎各位留言交流以及批评指正如果文章对您有帮助或者觉得作者写的还不错可以点一下关注点赞收藏支持一下。 博客的参考源码可以在我主页的资源里找到如果在学习的过程中有什么疑问欢迎大家在评论区向我提出