留言板(Mybatis连接数据库版)

目录

1.添加Mybatis和SQL的依赖

2.建立数据库和需要的表

3.对应表中的字段,补充Java对象

4.对代码进行逻辑分层

5.后端逻辑代码


之前的项目实例【基于Spring MVC的前后端交互案例及应用分层的实现】https://blog.csdn.net/weixin_67793092/article/details/134613210?utm_source=app&app_version=6.1.7中有关对于留言板的介绍,现在使用Mybatis完成连接数据库,这样以便刷新浏览器页面后,之前输入的信息仍然能够保存在硬盘中。

之前的前端页面实现:

1.添加Mybatis和SQL的依赖

在pom.xml文件中右键

2.建立数据库和需要的表

复制代码
 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;

配置连接数据库application.properties文件

java 复制代码
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver

spring.datasource.url=jdbc:mysql://127.0.0.1:3306/mybatis_test?characterEncoding=utf8&useSSL=false

spring.datasource.username=root

spring.datasource.password=root

3.对应表中的字段,补充Java对象

4.对代码进行逻辑分层

controller接收请求,service服务层实现业务逻辑,mapper查询数据库的操作,model存放对象。

配置日志:

方便遇见问题时调试代码

复制代码
mybatis:
    configuration:
      log-impl: org.apache.ibatis.logging.stdout.StdOutImpl

5.后端逻辑代码

MessageController

java 复制代码
@Slf4j
@RequestMapping("/message")
@RestController

//发布留言
public class MessageController {
    //    private List<MessageInfo> messageInfos=new ArrayList<>();
    @Autowired
    private MessageService messageService;

    @RequestMapping("/publish")
    public Boolean publishMessage(MessageInfo messageInfo) {
         log.info("发表留言");
        //进行参数的校验
        if (!StringUtils.hasLength(messageInfo.getFrom())
                || !StringUtils.hasLength(messageInfo.getTo())
                || !StringUtils.hasLength(messageInfo.getMessage())) {
            return false;
        }

        //添加留言
        messageService.addMessage(messageInfo);

        return true;
    }
//       查看留言
    @RequestMapping("/getMassageInfo")
    public List<MessageInfo> getMessageInfo(){
        return messageService.getMessageInfo();
    }
}

MessageService

java 复制代码
@Service
public class MessageService {
    @Autowired
    private MessageMapper messageMapper;
    public void addMessage(MessageInfo messageInfo) {
        messageMapper.insertMessage(messageInfo);
    }

    public List<MessageInfo> getMessageInfo() {
        return messageMapper.selectAllMessage();
    }
}

MessageMapper

java 复制代码
@Mapper
public interface MessageMapper {
    @Insert("insert into message_info(from,to,message) values (#{from},#{to},#{message}")
     void insertMessage(MessageInfo messageInfo);

    @Select("select * from message_info where delete_flag=0")
    List<MessageInfo> selectAllMessage();
}

代码逻辑:

相关推荐
2603_965148113 小时前
如何解析JSON数据?API返回的商品信息处理教程
开发语言·数据库·python·自动化·json·api
ltl4 小时前
RocksDB 经典故障排查:L0、compaction 与 write stall
数据库
xfhuangfu5 小时前
Oracle中建立到CDB和PDB的连接
数据库·oracle·rpc
小小龙学IT5 小时前
DuckDB 深度实战:用 C++ 在进程内跑一个「分析型数据库」
数据库·c++
NineData5 小时前
DTCC 2026 预告|NineData CEO& 创始人叶正盛:面向 AI Agent 的数据库 DevOps 与数据复制实践
数据库·人工智能·数据库开发·devops·ninedata·数据库技术·dtcc
J_bean6 小时前
MySQL 事务是否必须手动开启?
数据库·mysql·数据库事务·自动提交·手动提交
J_bean6 小时前
MySQL InnoDB 如何检测死锁、判定死锁、处理死锁
数据库·mysql·死锁·死锁检测·处理死锁·死锁判定
浪子明X6 小时前
从 MongoDB 文档到关系模型:构建可重跑、可对账的数据迁移流水线
数据库·mongodb·oracle
杜子不疼.6 小时前
国产数据库撑起固井软件自主化:金仓 × 中海油服「海恒 Cemsol」落地解析
数据库
隔窗听雨眠6 小时前
GBase 8s并发控制深度解析:封锁机制、隔离级别与死锁处理全攻略
服务器·数据库·oracle