浪漫编码:手把手教你实现校园表白墙功能
💓 博客主页:从零开始的-CodeNinja之路
⏩ 收录文章:浪漫编码:手把手教你实现校园表白墙功能
🎉欢迎大家点赞👍评论📝收藏⭐文章
这里写目录标题
- 表白墙
- 数据准备
- 引入MyBatis和MySQL驱动依赖
- 配置MySQL账号密码
- 编写后端代码
- 测试代码
表白墙
前面的案例中,我们写了表白墙,但是⼀旦服务器重启,数据仍然会丢失.
要想数据不丢失,需要把数据存储在数据库中.接下来咱们借助MyBatis来实现数据的操作
数据准备
DROP TABLE IF EXISTS message_info; CREATE TABLE `message_info` ( `id` INT ( 11 ) NOT NULL AUTO_INCREMENT, `from` VARCHAR ( 127 ) NOT NULL, `to` VARCHAR ( 127 ) NOT NULL, `message` VARCHAR ( 256 ) NOT NULL, `delete_flag` TINYINT ( 4 ) DEFAULT 0 COMMENT '0-正常, 1-删除', `create_time` DATETIME DEFAULT now(), `update_time` DATETIME DEFAULT now() ON UPDATE now(), PRIMARY KEY ( `id` ) ) ENGINE = INNODB DEFAULT CHARSET = utf8mb4;
ONUPDATEnow():当数据发生更新操作时,自动把该列的值设置为now(),
now()可以替换成其他获取时间的标识符,⽐如:CURRENT_TIMESTAMP(),LOCALTIME()等MySQL private Integer id; private String from; private String to; private String message; private Integer deleteFlag; private Date createTime; private Date updateTime; } @Select("select `id`, `from`, `to`, `message` from message_info where delete_flag=0") List @Autowired private MessageInfoMapper messageInfoMapper; public List return messageInfoMapper.queryAll(); } public Integer addMessage(MessageInfo messageInfo) { return messageInfoMapper.addMessage(messageInfo); } } @Autowired private MessageInfoService messageInfoService; /** * 获取留言列表 * @return */ @RequestMapping("/getList") public List return messageInfoService.queryAll(); } /** * 发表留言 * @param messageInfo * @return */ @RequestMapping("/publish") public boolean publish(MessageInfo messageInfo) { System.out.println(messageInfo); if (StringUtils.hasLength(messageInfo.getFrom()) && StringUtils.hasLength(messageInfo.getTo()) && StringUtils.hasLength(messageInfo.getMessage())) { messageInfoService.addMessage(messageInfo); return true; } return false; } }