留言板(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文件

spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driverspring.datasource.url=jdbc:mysql://127.0.0.1:3306/mybatis_test?characterEncoding=utf8&useSSL=falsespring.datasource.username=rootspring.datasource.password=root

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

4.对代码进行逻辑分层

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

配置日志:

方便遇见问题时调试代码

mybatis:configuration:log-impl: org.apache.ibatis.logging.stdout.StdOutImpl

5.后端逻辑代码

MessageController

@Slf4j
@RequestMapping("/message")
@RestController//发布留言
public class MessageController {//    private List<MessageInfo> messageInfos=new ArrayList<>();@Autowiredprivate 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

@Service
public class MessageService {@Autowiredprivate MessageMapper messageMapper;public void addMessage(MessageInfo messageInfo) {messageMapper.insertMessage(messageInfo);}public List<MessageInfo> getMessageInfo() {return messageMapper.selectAllMessage();}
}

MessageMapper

@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();
}

代码逻辑:

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/589486.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

HTTPS协议详解

目录 前言 一、HTTPS协议 1、加密是什么 2、为什么要加密 二、常见加密方式 1、对称加密 2、非对称加密 三、数据摘要与数据指纹 1、数据摘要 2、数据指纹 四、HTTPS加密策略探究 1、只使用对称加密 2、只使用非对称加密 3、双方都使用非对称加密 4、对称加密非…

html-css-js使用axios和ajax获取接口并携带请求头+获取输入框或选择器内容

需求&#xff1a;使用axios或者Ajax获取接口&#xff0c;有些需要获取到输入框&#xff0c;或者选择器内容之后传给接口&#xff0c;也就是写了几种不同请求的方法&#xff0c;网上有很多方法&#xff0c;本文章算是个归纳吧。 一、axios请求传参请求头 1.github下载axios 我…

MS2358:96KHz、24bit 音频 ADC

产品简述 MS2358 是带有采样速率 8kHz-96kHz 的立体声音频模数 转换器&#xff0c;适合于面向消费者的专业音频系统。 MS2358 通过使用增强型双位 Δ - ∑ 技术来实现其高精度 的特点。 MS2358 支持单端的模拟输入&#xff0c;所以不需要外部器 件&#xff0c;非常适…

领域驱动设计(Domain-Driven Design DDD)——模型驱动设计的构造块2

书接上回领域驱动设计&#xff08;Domain-Driven Design DDD)——模型驱动设计的构造块1-CSDN博客 四、领域对象的生命周期 每个对象都有生命周期&#xff0c;管理这些对象面临诸多挑战&#xff0c;主要的挑战有以下两类。 在整个生命周期中维护完整性 防止模型陷入管理…

内侧APP分发平台:移动应用开发的加速器

在数字化时代&#xff0c;移动应用已成为企业触达用户的重要渠道。为了迅速占领市场&#xff0c;开发者需要一种能够快速发布和测试移动应用的解决方案。内侧APP分发平台应运而生&#xff0c;它通过简化应用的封装、测试和分发流程&#xff0c;极大地提升了移动应用的上市速度。…

【大数据面试知识点】Spark中的累加器

Spark累加器 累加器用来把Executor端变量信息聚合到Driver端&#xff0c;在driver程序中定义的变量&#xff0c;在Executor端的每个task都会得到这个变量的一份新的副本&#xff0c;每个task更新这些副本的值后&#xff0c;传回driver端进行merge。 累加器一般是放在行动算子…

12. 整数转罗马数字

罗马数字包含以下七种字符&#xff1a; I&#xff0c; V&#xff0c; X&#xff0c; L&#xff0c;C&#xff0c;D 和 M。 字符 数值 I 1 V 5 X 10 L 50 C 100 D 500 M 1000 …

第14课 多维数组

文章目录 前言一、多维数组的定义二、多维数组的初始化三、多维数组的使用&#xff08;以二维数组为例&#xff09;1. 矩阵转置问题 三、课后练习1. 求一个m*n矩阵中所有元素的累加和2. 查找并输出一个m*n矩阵中的最小元素以及其在矩阵中的位置3. 将m*n矩阵A复制为m*n矩阵B&…

leetcode 贪心(分发糖果、K次取反后最大化的数组和、加油站)

1005.K次取反后最大化的数组和 给定一个整数数组 A&#xff0c;我们只能用以下方法修改该数组&#xff1a;我们选择某个索引 i 并将 A[i] 替换为 -A[i]&#xff0c;然后总共重复这个过程 K 次。&#xff08;我们可以多次选择同一个索引 i。&#xff09; 以这种方式修改数组后…

Linux报错:audit: backlog limit exceeded

今天&#xff0c;一台虚拟机上操作昨天打开的连接一直没响应&#xff0c;新打开连接连接不上。SSH校验不通过。 通过IT的后台&#xff0c;可以看到满屏的audit: backlog limit exceeded。 问题原因&#xff1a;audit服务记录的审计事件超出默认(或设置)数量 &#xff0c;达到或…

边缘计算网关在温室大棚智能控制系统应用,开启农业新篇章

项目需求 ●目前大棚主要通过人为手动控温度、控水、控光照、控风&#xff0c;希望通过物联网技术在保障产量的前提下&#xff0c;提高作业效率&#xff0c;降低大棚总和管理成本。 ●释放部分劳动力&#xff0c;让农户有精力管理更多大棚&#xff0c;进而增加农户收入。 ●…

Python进行批量字符替换的3种方法

一、问题的提出 之前&#xff0c;我写过一篇如何在word中计算数学算式&#xff1a; 如何用Python批量计算Word中的算式-CSDN博客 为了计算算式&#xff0c;就需要对算式进行格式化&#xff0c;把不规则的算式转换成规则的算式&#xff0c;这时就会涉及到一些字符的批量替换。…

如何在 Linux 中配置 firewalld 规则

什么是FirewallD “firewalld”是firewall daemon。它提供了一个动态管理的防火墙&#xff0c;带有一个非常强大的过滤系统&#xff0c;称为 Netfilter&#xff0c;由 Linux 内核提供。 FirewallD 使用zones和services的概念&#xff0c;而 iptables 使用chain和rules。与 ip…

【LLM-RAG】知识库问答 | 检索 | embedding

note RAG流程&#xff08;写作论文中的background&#xff1a;公式设定、emb、召回内容、召回基准&#xff09;&#xff08;工作中的思路&#xff1a;嵌入模型、向量存储、向量存储检索器、LLM、query改写、RAG评测方法&#xff09;仅为个人关于RAG的一些零碎总结&#xff0c;…

【网络面试(4)】协议栈和套接字及连接阶段的三次握手原理

1. 协议栈 一直对操作系统系统的内核协议栈理解的比较模糊&#xff0c;借着这一篇博客做一下简单梳理&#xff0c; 我觉得最直白的理解就是&#xff0c;内核协议栈就是操作系统中的一个网络控制软件&#xff0c;就是一段程序代码&#xff0c;它负责和网卡驱动程序交互&#xff…

Docker 从入门到实践:Docker介绍

前言 在当今的软件开发和部署领域&#xff0c;Docker已经成为了一个不可或缺的工具。Docker以其轻量级、可移植性和标准化等特点&#xff0c;使得应用程序的部署和管理变得前所未有的简单。无论您是一名开发者、系统管理员&#xff0c;还是IT架构师&#xff0c;理解并掌握Dock…

7.11全排列(LC46-M)

算法&#xff1a; 排列和组合很像&#xff0c;但是有顺序。 还是用回溯算法。 与组合不同之处&#xff08;无startindex&#xff0c;有used数组&#xff09;&#xff1a; 首先排列是有序的&#xff0c;也就是说 [1,2] 和 [2,1] 是两个集合。 可以看出元素1在[1,2]中已经使…

大学物理II-作业1【题解】

1.【单选题】——考查高斯定理 下面关于高斯定理描述正确的是&#xff08;D &#xff09;。 A.高斯面上的电场强度是由高斯面内的电荷激发的 B.高斯面上的各点电场强度为零时&#xff0c;高斯面内一定没有电荷 C.通过高斯面的电通量为零时&#xff0c;高斯面上各点电场强度…

基于被囊群算法优化的Elman神经网络数据预测 - 附代码

基于被囊群算法优化的Elman神经网络数据预测 - 附代码 文章目录 基于被囊群算法优化的Elman神经网络数据预测 - 附代码1.Elman 神经网络结构2.Elman 神经用络学习过程3.电力负荷预测概述3.1 模型建立 4.基于被囊群优化的Elman网络5.测试结果6.参考文献7.Matlab代码 摘要&#x…

2023-12-15 LeetCode每日一题(反转二叉树的奇数层)

2023-12-15每日一题 一、题目编号 2415. 反转二叉树的奇数层二、题目链接 点击跳转到题目位置 三、题目描述 给你一棵 完美 二叉树的根节点 root &#xff0c;请你反转这棵树中每个 奇数 层的节点值。 例如&#xff0c;假设第 3 层的节点值是 [2,1,3,4,7,11,29,18] &…