
我用的是idea开发工具。使用了springboot框架+MySQL数据库的组合。
关注让 “紫雾凌寒” 来帮你回答,本回答结合 DeepSeek
如果还有问题,请评论或点击头像私信,如果有帮助到您, 请关注、采纳、点赞
解决方案:
- 前端部分:
html
<button id="favoriteButton">收藏</button>
<script>
document.getElementById('favoriteButton').addEventListener('click', function() {
// 假设这里获取小说ID为123
var novelId = 123;
// 发送AJAX请求到后端
var xhr = new XMLHttpRequest();
xhr.open('POST', '/favorite', true);
xhr.setRequestHeader('Content-Type', 'application/json');
var data = JSON.stringify({novelId: novelId});
xhr.send(data);
});
</script>@RestController
public class FavoriteController {
@Autowired
private JdbcTemplate jdbcTemplate;
@PostMapping("/favorite")
public String favoriteNovel(@RequestBody FavoriteRequest request) {
String sql = "INSERT INTO favorites (novel_id) VALUES (?)";
jdbcTemplate.update(sql, request.getNovelId());
return "收藏成功";
}
}
class FavoriteRequest {
private Long novelId;
public Long getNovelId() {
return novelId;
}
public void setNovelId(Long novelId) {
this.novelId = novelId;
}
}
``
- 这里使用了Spring Boot的JdbcTemplate来操作MySQL数据库。首先创建了一个FavoriteController控制器处理/favorite路径的POST请求。请求体中的FavoriteRequest包含小说ID,通过JdbcTemplate执行SQL插入语句将小说ID插入到名为favorites的表中(假设表结构为favorites,字段为novel_id`)。
3. 方案优缺点:
- 优点:
- 简单直接:这种方式实现起来较为直观,对于初学者容易理解。
- 前后端分离清晰:前端负责事件触发和数据传递,后端专注于业务逻辑处理和数据库操作,职责分明。
- 缺点:
- 安全性问题:直接在前端拼接SQL语句(虽然这里是简单示例)存在SQL注入风险。更好的做法是使用Spring Boot的参数绑定等方式来避免。
- 可扩展性有限:如果后续有更多复杂的收藏逻辑,如记录收藏时间、用户信息等,需要对代码进行较多修改。
4. 总结:
- 要实现点击收藏按钮成功收藏小说的功能,需要前端通过点击事件发送包含小说ID等必要信息的请求到后端。后端在Spring Boot框架下接收请求,利用JdbcTemplate等工具与MySQL数据库交互,将收藏信息存储到数据库中。这种方式是一种常见且基础的实现思路,后续可根据实际需求进行优化和扩展,如增强安全性、完善业务逻辑等。
希望以上解答对您有所帮助。如果您有任何疑问,欢迎在评论区提出。