MyBatis實現(xiàn)留言板的示例代碼
效果預(yù)覽
界面長這樣,每次提交之后,會在下面生成一條記錄,刷新頁面或者關(guān)掉后重新打開,這些記錄仍然存在
思路
我們需要在數(shù)據(jù)庫中保存一條一條的消息,那就需要一個類
@Data public class MessageInfo { private Integer id; private String from; //誰留言 private String to; //留言對誰說 private String message; //留言的內(nèi)容 private Integer deleteFlag; //刪除的標志 private Date createTime; private Date updateTime; }
主體要實現(xiàn)兩個功能:發(fā)布留言、查看所有留言
先來寫 Mapper 接口
由于要實現(xiàn)持久化存儲,所以發(fā)布留言就是將留言放進數(shù)據(jù)庫的表中,即 insert 操作;而對于查看留言,其實就是查詢表中所有留言
@Mapper public interface MessageInfoMapper { //發(fā)布留言:把留言放進數(shù)據(jù)庫 @Insert("insert into message_info (`from`,`to`,`message`) values (#{from},#{to},#{message})") public Integer insertMessage(MessageInfo messageInfo); @Select("select from,to,message from message_info where delete_flag = 0") public List<MessageInfo> selectAllList(); }
接下來寫 Service,調(diào)用接口那兩個方法就 ok 了:
@Service public class MessageService { @Autowired private MessageInfoMapper messageInfoMapper; //發(fā)布留言 public Integer publishMessage(MessageInfo messageInfo) { return messageInfoMapper.insertMessage(messageInfo); } //查詢留言 public List<MessageInfo> getMessageList() { return messageInfoMapper.selectAllList(); } }
再來寫 Controller 實現(xiàn)接口中的方法
@RestController @RequestMapping("MessageBoard") public class MessageController { private List<MessageInfo> list = new ArrayList<>(); @RequestMapping("/getList") public List<MessageInfo> getList() { return list; } //發(fā)布留言,就是把留言信息加入 list @RequestMapping("/publish") public boolean publish(MessageInfo messageInfo) { System.out.println("接收參數(shù)"); //打日志 //檢查留言是否為空 if(!StringUtils.hasLength(messageInfo.getTo()) || !StringUtils.hasLength(messageInfo.getFrom()) || !StringUtils.hasLength(messageInfo.getMessage())) return false; //不為空就加入 list list.add(messageInfo); return true; } }
最后是前端部分的代碼,這部分直接粘貼下面的代碼就 ok 了,如果要改 UI 的話,可以到 BootStrap 上面拿現(xiàn)成的模板改一下
網(wǎng)址:BootStrap
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>留言板</title> <style> .container { width: 350px; height: 300px; margin: 0 auto; /* border: 1px black solid; */ text-align: center; } .grey { color: grey; } .container .row { width: 350px; height: 40px; display: flex; justify-content: space-between; align-items: center; } .container .row input { width: 260px; height: 30px; } #submit { width: 350px; height: 40px; background-color: mediumpurple; color: white; border: none; margin: 10px; border-radius: 5px; font-size: 20px; } </style> </head> <body> <div class="container"> <h1>留言板</h1> <p class="grey">輸入后點擊提交, 會將信息顯示下方空白處</p> <div class="row"> <span>誰:</span> <input type="text" name="" id="from"> </div> <div class="row"> <span>對誰:</span> <input type="text" name="" id="to"> </div> <div class="row"> <span>說什么:</span> <input type="text" name="" id="message"> </div> <input type="button" value="提交" id="submit" onclick="submit()"> <!-- <div>A 對 B 說: hello</div> --> </div> <script src="https://cdn.bootcdn.net/ajax/libs/jquery/3.6.4/jquery.min.js"></script> <script> $.ajax({ url: "/MessageBoard/getList", type: "get", success: function (messageInfos) { var finalHtml = ""; for(var message of messageInfos) { finalHtml += '<div>' + message.from + '對' + message.to + '說:' + message.message + '</div>'; } $(".container").append(finalHtml); } }); submit(); function submit(){ console.log("發(fā)布留言"); //1. 獲取留言的內(nèi)容 var from = $('#from').val(); var to = $('#to').val(); var message = $('#message').val(); if (from== '' || to == '' || message == '') { return; } //發(fā)送ajax請求 $.ajax({ url: "/MessageBoard/publish", type: "post", data: { from: $('#from').val(), to: $('#to').val(), message: $('#message').val() }, success: function(result) { if(result) { //2. 構(gòu)造節(jié)點 var divE = "<div>"+from +"對" + to + "說:" + message + "</div>"; //3. 把節(jié)點添加到頁面上 $(".container").append(divE); //4. 清空輸入框的值 $('#from').val(""); $('#to').val(""); $('#message').val(""); } else { alert("輸入不合法,請重新輸入"); } } }); } </script> </body> </html>
到此這篇關(guān)于MyBatis實現(xiàn)留言板的示例代碼的文章就介紹到這了,更多相關(guān)MyBatis 留言板內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
- Mybatis-Plus動態(tài)表名的實現(xiàn)示例
- mybatis-plus實現(xiàn)打印完整sql語句
- MyBatis-Plus中實現(xiàn)自定義復(fù)雜排序邏輯的詳細步驟
- Mybatis?Plus批處理操作的實現(xiàn)示例
- mybatisplus?實現(xiàn)接口MetaObjectHandler自動填充字段值
- mybatis 一對多嵌套查詢的實現(xiàn)
- MyBatis/mybatis-plus項目打印SQL的方法實現(xiàn)
- 若依 MyBatis改為MyBatis-Plus的實現(xiàn)步驟
- SpringBoot3.0集成MybatisPlus的實現(xiàn)方法
相關(guān)文章
Springboot使用jxls實現(xiàn)excel模板導(dǎo)出excel方式
這篇文章主要介紹了Springboot使用jxls實現(xiàn)excel模板導(dǎo)出excel方式,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教2024-08-08springAI結(jié)合ollama簡單實現(xiàn)小結(jié)
本文主要介紹了springAI結(jié)合ollama簡單實現(xiàn),文中通過示例代碼介紹的非常詳細,對大家的學(xué)習或者工作具有一定的參考學(xué)習價值,需要的朋友們下面隨著小編來一起學(xué)習學(xué)習吧2025-03-03Spring?MVC DispatcherServlet處理請求過程示例詳解
這篇文章主要介紹了Spring?MVC?DispatcherServlet處理請求過程示例解析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪2023-09-09