Spring Boot:前端新闻设计

故事的起因

因为在前端设计了一个放置新闻的div,所以总是要实现出来吧。
在这里插入图片描述

首先设计新闻Entity

在这里插入图片描述

package shuhuan.bond.entity.common;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.EntityListeners;
import javax.persistence.Table;
import org.springframework.data.jpa.domain.support.AuditingEntityListener;
import shuhuan.bond.annotion.ValidateEntity;
/**
 * 新闻实体类
 * @author Administrator
 *
 */
@Entity
@Table(name="hsh_news")
@EntityListeners(AuditingEntityListener.class)
public class News extends BaseEntity{
	//新闻标题
	@ValidateEntity(required=true,requiredLeng=true,minLength=1,maxLength=30,errorRequiredMsg="新闻标题不能为空哦!",errorMinLengthMsg="新闻标题长度不能小于1哦",errorMaxLengthMsg="新闻标题长度不能大于30哦!")
	@Column(name="title",nullable=false,length=1024)
	private String title;
	//新闻内容
	@ValidateEntity(required=true,requiredLeng=true,minLength=1,maxLength=10000,errorRequiredMsg="新闻内容不能为空哦!",errorMinLengthMsg="新闻内容长度不能小于1哦",errorMaxLengthMsg="新闻内容长度不能大于10000哦!")
	@Column(name="content",nullable=false,length=10024)
	private String content;
	//浏览量
	@Column(name="view_number",nullable=false,length=9)
	private Integer viewNumber=0;
	
	public String getTitle() {
		return title;
	}
	public void setTitle(String title) {
		this.title = title;
	}
	public String getContent() {
		return content;
	}
	public void setContent(String content) {
		this.content = content;
	}
	public Integer getViewNumber() {
		return viewNumber;
	}
	public void setViewNumber(Integer viewNumber) {
		this.viewNumber = viewNumber;
	}
	@Override
	public String toString() {
		return "News [title=" + title + ", content=" + content
				+ ", viewNumber=" + viewNumber + "]";
	}
}

这样就可以在MySQL里面新建一张表了,如下图所示:
在这里插入图片描述

然后编辑新闻Dao层

在这里插入图片描述

package shuhuan.bond.dao.common;
/**
 * 新闻Dao层
 */
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.stereotype.Repository;
import shuhuan.bond.entity.common.News;

@Repository
public interface NewsDao extends JpaRepository<News, Long> {
	
}

然后编辑新闻Service

在这里插入图片描述

package shuhuan.bond.service.common;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.domain.Example;
import org.springframework.data.domain.ExampleMatcher;
import org.springframework.data.domain.ExampleMatcher.GenericPropertyMatchers;
import org.springframework.data.domain.Page;
import org.springframework.data.domain.PageRequest;
import org.springframework.data.domain.Sort;
import org.springframework.data.domain.Sort.Direction;
/**
 * 新闻service层
 * @author Shinelon
 *
 */
import org.springframework.stereotype.Service;
import shuhuan.bond.bean.PageBean;
import shuhuan.bond.dao.common.NewsDao;
import shuhuan.bond.entity.common.News;
@Service
public class NewsService {
	@Autowired
	private NewsDao newsDao;
	/**
	 * 添加/修改新闻,id不为空就是修改
	 * @param news
	 * @return
	 */
	public News save(News news){
		return newsDao.save(news);
	}
	/**
	 * 分页搜索新闻
	 * @param pageBean
	 * @param news
	 * @return
	 */
	public PageBean<News> findlist(PageBean<News> pageBean,News news){
		ExampleMatcher exampleMatcher = ExampleMatcher.matching();
		exampleMatcher = exampleMatcher.withMatcher("title", GenericPropertyMatchers.contains());
		exampleMatcher=exampleMatcher.withIgnorePaths("sort","viewNumber");
		Example<News> example=Example.of(news, exampleMatcher);
		Sort sort = Sort.by(Direction.ASC, "sort");
		PageRequest pageable=PageRequest.of(pageBean.getCurrentPage()-1, pageBean.getPageSize(), sort);
		Page<News> findAll = newsDao.findAll(example, pageable);
		pageBean.setContent(findAll.getContent());
		pageBean.setTotal(findAll.getTotalElements());
		pageBean.setTotalPage(findAll.getTotalPages());
		return pageBean;
	}
	/**
	 * 删除新闻
	 * @param id
	 */
	public void delete(Long id){
		newsDao.deleteById(id);
	}
}

后续添加

众所周知:“故事的发展有太多意外~”现在呢,添加一个新的属性:sort;为了方便排序:

@Column(name="sort",nullable=false,length=4)
	private Integer sort = 0;//默认升序排列,默认是0
	public Integer getSort() {
		return sort;
	}
	public void setSort(Integer sort) {
		this.sort = sort;
	}
	@Override
	public String toString() {
		return "News [title=" + title + ", content=" + content
				+ ", viewNumber=" + viewNumber + ", sort=" + sort + "]";
	}

设计控制器

这里考虑到前台又展示,后台有管理系统,所以controller就建立两个,这个明天再说吧,因为遇到了一点小小的问题,在做这个作业的过程中,我也发现了很多不足,包括一些致命性的不合理,等做完之后一一分析吧,现在就是因为这些不足让我很头疼,呜啊~~

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

一只天蝎

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值