故事的起因
因为在前端设计了一个放置新闻的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就建立两个,这个明天再说吧,因为遇到了一点小小的问题,在做这个作业的过程中,我也发现了很多不足,包括一些致命性的不合理,等做完之后一一分析吧,现在就是因为这些不足让我很头疼,呜啊~~