MyBatis實現(xiàn)留言板的示例代碼
效果預覽

界面長這樣,每次提交之后,會在下面生成一條記錄,刷新頁面或者關(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)自定義復雜排序邏輯的詳細步驟
- 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)文章
JAVA 數(shù)據(jù)結(jié)構(gòu)之Queue處理實例代碼
這篇文章主要介紹了JAVA 數(shù)據(jù)結(jié)構(gòu)之Queue處理實例代碼的相關(guān)資料,需要的朋友可以參考下2017-02-02
spring boot實戰(zhàn)教程之shiro session過期時間詳解
這篇文章主要給大家介紹了關(guān)于spring boot實戰(zhàn)教程之shiro session過期時間的相關(guān)資料,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面來一起看看吧。2017-10-10
SpringBatch從入門到精通之StepScope作用域和用法詳解
這篇文章主要介紹了SpringBatch從入門到精通之StepScope作用域和用法詳解,主要包括IOC容器中幾種bean的作用范圍以及可能遇到的問題,本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下2022-05-05
spring boot里增加表單驗證hibernate-validator并在freemarker模板里顯示錯誤信息(推
這篇文章主要介紹了spring boot里增加表單驗證hibernate-validator并在freemarker模板里顯示錯誤信息的相關(guān)資料,需要的朋友可以參考下2018-01-01
SpringBoot和Vue2項目配置https協(xié)議過程
本文詳細介紹了SpringBoot項目和Vue2項目的部署流程及SSL證書配置,對于SpringBoot項目,需將.pfx文件放入resources目錄并配置server,然后打包部署,Vue2項目中,涉及檢查nginx的SSL模塊、編譯新的nginx文件2024-10-10
在MyBatisPlus中使用@TableField完成字段自動填充的操作
這篇文章主要介紹了在MyBatisPlus中使用@TableField完成字段自動填充的操作,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2021-02-02
SpringBoot中給指定接口加上權(quán)限校驗的實現(xiàn)
本文介紹了使用SpringSecurity為接口添加權(quán)限校驗,以防止外部訪問并確保安全性,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2024-12-12

