96SEO 2026-02-19 11:16 8
需要把数据存储在数据库中接下来咱们借助MyBatis来实现数据库的操作。

如果我们想将数据存起来首先要有一个数据库吧所以首先就是要创建一个数据库
小黑框里写有点麻烦我们可以借助一些软件来更加简单的创建数据库我使用的是Navicat
Premium17挺好用的虽然它收费但是搜搜教程免费的就来了懂我的意思吧。
这是创建一个message_info表的代码有兴趣的可以跟着敲一下就当复习了没兴趣的直接复制就行。
groupIdorg.mybatis.spring.boot/groupId
artifactIdmybatis-spring-boot-starter/artifactId
artifactIdmysql-connector-j/artifactId
/dependency方法二使⽤插件EditStarters来引入依赖
然后在Plugins插件里面搜EditStarters,点击install就行了然后重启IDEA就能用了
对于方法三吃一堑长一智下次我们在创建项目的时候直接添加进来就行了就不用后期再次添加了。
这个操作需要在applicantion.properties文件下配置由于这里我只提供了yml格式的配置信息大家可以将这个文件重命名改成applicantion.yml照着下面的流程图改就行了。
jdbc:mysql://127.0.0.1:3306/blogs_text?characterEncodingutf8useSSLfalseusername:
org.apache.ibatis.logging.stdout.StdOutImplmap-underscore-to-camel-case:
我们可以看到数据库里有很多属性如果只靠我们之前定义的类中的属性肯定是不够的所以我们要重新定义一个实体类和数据库里的属性对应。
com.example.leavemessage_blogs.model;
说到这里我们就需要想一想接口文档了我们的需求是什么要用增删改查的哪一个。
我们知道表白墙的两大功能就是
由此我们可以回忆一下之前我们的初级表白墙怎么做的我们是用一个list来储存数据如果要显示数据就将list返回给前端。
而此刻我们不再用list储存数据了而是用数据库所以我们要提供的功能就是1查找数据select返回数据给前端页面显示2新增数据insert将用户输入的数据存到数据库中
InfoMapper接口的代码由于我们不需要方法有具体的实现所以定义成接口更合适
com.example.leavemessage_blogs.Mapper;import
com.example.leavemessage_blogs.model.Info;
org.apache.ibatis.annotations.Insert;
org.apache.ibatis.annotations.Mapper;
org.apache.ibatis.annotations.Select;
java.util.List;//使用Mybatis操作数据库别忘记加Mapper注解
{//我们采用传对象的方式由于前端只提交这几个值所以我们只需要将这几个值传入数据库就行了其他的默认值就行Insert(insert
(#{from},#{to},#{message}))public
右键——》generate——》text——》勾选你要测试的方法其他不用动。
com.example.leavemessage_blogs.Mapper;import
com.example.leavemessage_blogs.model.Info;
org.springframework.beans.factory.annotation.Autowired;
org.springframework.boot.test.context.SpringBootTest;SpringBootTest
Info();info.setFrom(wulanzheng);info.setTo(chengaiying);info.setMessage(I
com.example.leavemessage_blogs.Mapper;import
com.example.leavemessage_blogs.model.Info;
org.apache.ibatis.annotations.Insert;
org.apache.ibatis.annotations.Mapper;
org.apache.ibatis.annotations.Select;
{//我们采用传对象的方式由于前端只提交这几个值所以我们只需要将这几个值传入数据库就行了其他的默认值就行
注意如果你在右键——》generate——》text——》勾选你要测试的方法。
com.example.leavemessage_blogs.Mapper;import
com.example.leavemessage_blogs.model.Info;
org.springframework.beans.factory.annotation.Autowired;
org.springframework.boot.test.context.SpringBootTest;SpringBootTest
{//将查询的数据遍历打印下来这是一种lamda表达式的写法infoMapper.querryAllInfo().forEach(System.out::println);
}这样我们的后端主要的架构就写完了但是由于应用分层的理念我们还要写service方法和controller进行交互
com.example.leavemessage_blogs.Service;import
com.example.leavemessage_blogs.Mapper.InfoMapper;
com.example.leavemessage_blogs.model.Info;
org.springframework.beans.factory.annotation.Autowired;
org.springframework.stereotype.Service;import
infoMapper.querryAllInfo();}public
infoMapper.addInfo(info);if(ret)
我们已经将数据库引入了自然就不需要list来存储数据了所以controller中的代码也要修改
com.example.leavemessage_blogs.Controller;import
com.example.leavemessage_blogs.Service.InfoService;
com.example.leavemessage_blogs.model.Info;
org.springframework.beans.factory.annotation.Autowired;
org.springframework.util.StringUtils;
org.springframework.web.bind.annotation.RequestMapping;
org.springframework.web.bind.annotation.RestController;import
java.util.List;RequestMapping(/message)
infoService;RequestMapping(getList_Mysql)public
infoService.getInfo();}RequestMapping(/addInfo)public
info){System.out.println(info);if(StringUtils.hasLength(info.getFrom())StringUtils.hasLength(info.getTo())StringUtils.hasLength(info.getMessage())){infoService.addInfo(info);return
此时我们就已经将后端代码全部修改完毕了就是测试了我们使用postman来测试。
类和service类Mapper类都先写了然后再经过Postman访问controller的url从而达到测试的目的这也是一种测试的方法。
但是相比较于我们上面的直接generate自动生成的方法自动生成的方法更加的方便高效所以更推荐在测试一个接口的时候使用自动生成的方法。
确定了后端代码全部正确以后此时我们再次点开messagewall.html文件对前端代码进行修改
/message/getList_Mysql,//修改这里的url改成我们新的urlsuccess:
/div;$(.container).append(divE);}}});}
访问http://127.0.0.1:8080/messagewall.html之后会出现我们之前添加过的数据这表示查询功能正常
以上的表白墙无论你怎么重复启动程序都不会丢失数据了这就是表白墙进阶全部内容了如果有什么问题欢迎留言我们共同探讨。
作为专业的SEO优化服务提供商,我们致力于通过科学、系统的搜索引擎优化策略,帮助企业在百度、Google等搜索引擎中获得更高的排名和流量。我们的服务涵盖网站结构优化、内容优化、技术SEO和链接建设等多个维度。
| 服务项目 | 基础套餐 | 标准套餐 | 高级定制 |
|---|---|---|---|
| 关键词优化数量 | 10-20个核心词 | 30-50个核心词+长尾词 | 80-150个全方位覆盖 |
| 内容优化 | 基础页面优化 | 全站内容优化+每月5篇原创 | 个性化内容策略+每月15篇原创 |
| 技术SEO | 基本技术检查 | 全面技术优化+移动适配 | 深度技术重构+性能优化 |
| 外链建设 | 每月5-10条 | 每月20-30条高质量外链 | 每月50+条多渠道外链 |
| 数据报告 | 月度基础报告 | 双周详细报告+分析 | 每周深度报告+策略调整 |
| 效果保障 | 3-6个月见效 | 2-4个月见效 | 1-3个月快速见效 |
我们的SEO优化服务遵循科学严谨的流程,确保每一步都基于数据分析和行业最佳实践:
全面检测网站技术问题、内容质量、竞争对手情况,制定个性化优化方案。
基于用户搜索意图和商业目标,制定全面的关键词矩阵和布局策略。
解决网站技术问题,优化网站结构,提升页面速度和移动端体验。
创作高质量原创内容,优化现有页面,建立内容更新机制。
获取高质量外部链接,建立品牌在线影响力,提升网站权威度。
持续监控排名、流量和转化数据,根据效果调整优化策略。
基于我们服务的客户数据统计,平均优化效果如下:
我们坚信,真正的SEO优化不仅仅是追求排名,而是通过提供优质内容、优化用户体验、建立网站权威,最终实现可持续的业务增长。我们的目标是与客户建立长期合作关系,共同成长。
Demand feedback