ITDragon部落格 用Java 實現文章內容上一篇下一篇功能,邏輯和分頁不一樣。效果和本頁面底部一樣。採用的是Spring data jpa SQL語句實現該功能 SQL 陳述式查詢的是該資料的上一條和下一條 Spring data jpa 若是要執行原生的sql語句,需要添加nativeQuery=true
DAO 層代碼如下
copy
@Query(value="SELECT * FROM xlblog WHERE id IN (SELECT CASE WHEN SIGN(id - ?1) > 0 "+ "THEN MIN(id) WHEN SIGN(id - ?1) < 0 THEN MAX(id) END AS id FROM xlblog WHERE id <> ?1 "+ "GROUP BY SIGN(id - ?1) ORDER BY SIGN(id - ?1)) ORDER BY id ASC",nativeQuery=true)List<Blog> fetchNearBlogsById(Long id);
Service 層代碼如下
copy
public List<Blog> findIdAndTitle(Long id){ return blogDao.fetchNearBlogsById(id);}
Controller 層代碼如下
copy
List<Blog> blogUrls = blogService.findIdAndTitle(Long.valueOf(blogId));model.addAttribute("blogUrls",blogUrls);
前端調用代碼
copy
<c:forEach items="${blogUrls}" var="urls"> <a href="${ctx}/blog/detail/${urls.id}.html" class="urls-title" >${urls.title}</a><br></c:forEach>
jquery 修飾代碼
copy
var objUrlTitles = $(".markdown").find(".urls-title");objUrlTitles.each(function(e){if (0 == e) {$(this).prepend("<label>上一篇:</label>");} else {$(this).prepend("<label>下一篇:</label>");}});