基于javaweb+mysql的springboot简单博客管理系统(java+springboot+html+maven+mysql)
运行环境
Java≥8、MySQL≥5.7
开发工具
eclipse/idea/myeclipse/sts等均可配置运行
适用
课程设计,大作业,毕业设计,项目练习,学习演示等
功能说明
基于javaweb+mysql的SpringBoot简单博客管理系统(java+springboot+html+maven+mysql)
项目介绍
本项目为前后台管理系统,包括博主与游客两种角色; 博主角色包含以下功能: 博主登录,发博客,博主可以删除博客等功能。 游客角色包含以下功能: 首页,查看博客,添加评论,搜索-标签筛选等功能。
环境需要
1.运行环境:最好是java jdk 1.8,我们在这个平台上运行的。其他版本理论上也可以。 2.IDE环境:IDEA,Eclipse,Myeclipse都可以。推荐IDEA; 3.tomcat环境:Tomcat 7.x,8.x,9.x版本均可 4.硬件环境:windows 7/8/10 1G内存以上;或者 Mac OS;
5.数据库:MySql 5.7版本;
技术栈
-
后端:SpringBoot
-
前端:HTML+CSS+JavaScript+jsp
使用说明
- 使用Navicat或者其它工具,在mysql中创建对应名称的数据库,并导入项目的sql文件; 2. 使用IDEA/Eclipse/MyEclipse导入项目,Eclipse/MyEclipse导入时,若为maven项目请选择maven;若为maven项目,导入成功后请执行maven clean;maven install命令,然后运行; 3. 将项目中application.yml配置文件中的数据库配置改为自己的配置; 4. 运行项目,输入localhost:8080/ 登录
return updateTime;
}
public void setUpdateTime(Date updateTime) {
this.updateTime = updateTime;
}
public String getCategory() {
return category;
}
public void setCategory(String category) {
this.category = category;
}
}
package com.ibeetl.blog.model;
@Table(name = "message")
public class Message {
private Long id;
private Long blogId;
private Boolean deleteFlag;
private String content;
private String nickName;
private Date createTime;
private Date updateTime;
public Message() {
}
public Long getId() {
return id;
}
public void setId(Long id) {
this.id = id;
}
public Boolean getDeleteFlag() {
return deleteFlag;
}
public void setDeleteFlag(Boolean deleteFlag) {
@Override
public void saveBlog(Blog blog) {
Date now = new Date();
blog.setCreateTime(now);
blog.setUpdateTime(now);
blog.setDeleteFlag(false);
blogDao.createLambdaQuery().insertSelective(blog);
}
@Override
public List<String> listCategory() {
List<Blog> blogList = blogDao.createLambdaQuery().groupBy("category").select();
return blogList.stream().map(Blog::getCategory).filter(o -> o != null).collect(Collectors.toList());
}
@Override
public User login(String userName, String password) {
return userDao.createLambdaQuery()
.andEq(User::getUserName, userName)
.andEq(User::getPassword, password)
.andEq(User::getDeleteFlag, false)
.single();
}
@Override
public void deleteBlog(long id) {
blogDao.deleteById(id);
}
}
package com.ibeetl.blog.config;
public class PrintTime implements Function {
@Override
public String call(Object[] objects, Context context) {
Date date = (Date) objects[0];
Date now = new Date();
Long fiveM = date.getTime() + (5*60*1000);
Long thM = date.getTime() + (30*60*1000);
Long oneH = date.getTime() + (60*60*1000);
if(now.getTime() < fiveM){
return "刚刚";
}
if(now.getTime() < thM){
return "半小时前";
}
if(now.getTime() < oneH){
return "一小时前";
}
SimpleDateFormat sdf = new SimpleDateFormat(objects[1].toString());
return sdf.format(date);
}
}
package com.ibeetl.blog.service;
public interface BlogService {
PageQuery<Blog> pageBlog(long pageNumber, long pageSize, String keyword,String category);
/***
public void setCreateTime(Date createTime) {
this.createTime = createTime;
}
public Date getUpdateTime() {
return updateTime;
}
public void setUpdateTime(Date updateTime) {
this.updateTime = updateTime;
}
public Long getBlogId() {
return blogId;
}
public void setBlogId(Long blogId) {
this.blogId = blogId;
}
}
package com.ibeetl.blog;
public class GenCode {
public static void main(String[] args) throws Exception {
String driver = "com.mysql.cj.jdbc.Driver";
String url = "jdbc:mysql://mysql:3306/blog?useUnicode=true&characterEncoding=UTF-8&serverTimezone=GMT%2B8&useSSL=false&useInformationSchema=true";
String userName = "root";
String password = "8975789757";
ConnectionSource source = ConnectionSourceHelper.getSimple(driver, url, userName, password);
DBStyle mysql = new MySqlStyle();
// sql语句放在classpagth的/sql 目录下
SQLLoader loader = new ClasspathLoader("/sql");
// 数据库命名跟java命名一样,所以采用DefaultNameConversion,还有一个是UnderlinedNameConversion,下划线风格的,
UnderlinedNameConversion nc = new UnderlinedNameConversion();
// 最后,创建一个SQLManager,DebugInterceptor 不是必须的,但可以通过它查看sql执行情况
SQLManager sqlManager = new SQLManager(mysql, loader, source, nc, new Interceptor[]{new DebugInterceptor()});
sqlManager.genPojoCodeToConsole("user");
// sqlManager.genSQLTemplateToConsole("message");
}
}
public Long getId() {
return id;
}
public void setId(Long id) {
this.id = id;
}
public Boolean getDeleteFlag() {
return deleteFlag;
}
public void setDeleteFlag(Boolean deleteFlag) {
this.deleteFlag = deleteFlag;
}
public String getContent() {
return content;
}
public void setContent(String content) {
this.content = content;
}
public String getNickName() {
return nickName;
}
public void setNickName(String nickName) {
this.nickName = nickName;
}
public Date getCreateTime() {
return createTime;
}
public void setCreateTime(Date createTime) {
this.createTime = createTime;
}
public Date getUpdateTime() {
return updateTime;
}
public void setDeleteFlag(Boolean deleteFlag) {
this.deleteFlag = deleteFlag;
}
public String getImg() {
return img;
}
public void setImg(String img) {
this.img = img;
}
public String getTitle() {
return title;
}
public void setTitle(String title) {
this.title = title;
}
public Date getCreateTime() {
return createTime;
}
public void setCreateTime(Date createTime) {
this.createTime = createTime;
}
public Date getUpdateTime() {
return updateTime;
}
public void setUpdateTime(Date updateTime) {
this.updateTime = updateTime;
}
public String getCategory() {
return category;
}
public void setCategory(String category) {
this.category = category;
}
}
package com.ibeetl.blog.model;
@Table(name = "message")
public class Message {
package com.ibeetl.blog.service.impl;
@Service
public class BlogServiceImpl implements BlogService {
@Autowired
private BlogDao blogDao;
@Autowired
private MessageDao messageDao;
@Autowired
private UserDao userDao;
@Override
public PageQuery<Blog> pageBlog(long pageNumber, long pageSize, String keyword, String category) {
LambdaQuery<Blog> query = blogDao.createLambdaQuery()
.andEq(Blog::getDeleteFlag, false);
if (!StringUtils.isEmpty(keyword)) {
query.andLike(Blog::getTitle, "%" + keyword.trim() + "%");
}
if (!StringUtils.isEmpty(category)) {
query.andEq(Blog::getCategory, category);
}
if (pageNumber > 0 && pageSize > 0) {
return query.desc(Blog::getCreateTime).page(pageNumber, pageSize);
}
@Override
public void saveBlog(Blog blog) {
Date now = new Date();
blog.setCreateTime(now);
blog.setUpdateTime(now);
blog.setDeleteFlag(false);
blogDao.createLambdaQuery().insertSelective(blog);
}
@Override
public List<String> listCategory() {
List<Blog> blogList = blogDao.createLambdaQuery().groupBy("category").select();
return blogList.stream().map(Blog::getCategory).filter(o -> o != null).collect(Collectors.toList());
}
@Override
public User login(String userName, String password) {
return userDao.createLambdaQuery()
.andEq(User::getUserName, userName)
.andEq(User::getPassword, password)
.andEq(User::getDeleteFlag, false)
.single();
}
@Override
public void deleteBlog(long id) {
blogDao.deleteById(id);
}
}
package com.ibeetl.blog.config;
}
package com.ibeetl.blog.function;
public class PrintTime implements Function {
@Override
public String call(Object[] objects, Context context) {
Date date = (Date) objects[0];
Date now = new Date();
Long fiveM = date.getTime() + (5*60*1000);
Long thM = date.getTime() + (30*60*1000);
Long oneH = date.getTime() + (60*60*1000);
if(now.getTime() < fiveM){
return "刚刚";
}
if(now.getTime() < thM){
return "半小时前";
}
if(now.getTime() < oneH){
return "一小时前";
}
SimpleDateFormat sdf = new SimpleDateFormat(objects[1].toString());
return sdf.format(date);
}
}
package com.ibeetl.blog.service;
public interface BlogService {
PageQuery<Blog> pageBlog(long pageNumber, long pageSize, String keyword,String category);
/***
}
public Long getId() {
return id;
}
public void setId(Long id) {
this.id = id;
}
public String getContent() {
return content;
}
public void setContent(String content) {
this.content = content;
}
public Boolean getDeleteFlag() {
return deleteFlag;
}
public void setDeleteFlag(Boolean deleteFlag) {
this.deleteFlag = deleteFlag;
}
public String getImg() {
return img;
}
public void setImg(String img) {
this.img = img;
}
public String getTitle() {
return title;
}
public void setTitle(String title) {
this.title = title;
}
public Date getCreateTime() {
return createTime;
}
public void setCreateTime(Date createTime) {
this.createTime = createTime;
}
public Date getUpdateTime() {
return updateTime;
}
public String logout(HttpServletRequest request) {
request.getSession().removeAttribute("user");
return "redirect:/";
}
@GetMapping("/login")
public String login(@RequestParam(required = false) String userName,
@RequestParam(required = false) String password,
HttpServletRequest request) {
if (StringUtils.isEmpty(userName) || StringUtils.isEmpty(password)) {
return "login.html";
}
//进行登录业务
//根据用户名密码查询用户
User user = blogService.login(userName, password);
if (user == null) {
return "login.html";
}
//用户信息放入session
request.getSession().setAttribute("user", user);
//跳转到首页
return "redirect:/";
}
@GetMapping("/test")
public String test(HttpServletRequest request) {
return "test.html";
}
}
package com.ibeetl.blog.service.impl;
shared.put("blogCreateUser", "Gavin");
gt.setSharedVars(shared);
return gt;
}
@Bean
public BeetlGroupUtilConfiguration getBeetlGroupUtilConfiguration() {
BeetlGroupUtilConfiguration beetlGroupUtilConfiguration = new BeetlGroupUtilConfiguration();
//获取Spring Boot 的ClassLoader
ClassLoader loader = Thread.currentThread().getContextClassLoader();
if(loader==null){
loader = BeetlConfig.class.getClassLoader();
}
ClasspathResourceLoader cploder = new ClasspathResourceLoader(loader,
templatesPath);
beetlGroupUtilConfiguration.setResourceLoader(cploder);
beetlGroupUtilConfiguration.init();
//如果使用了优化编译器,涉及到字节码操作,需要添加ClassLoader
beetlGroupUtilConfiguration.getGroupTemplate().setClassLoader(loader);
return beetlGroupUtilConfiguration;
}
@Bean(name = "beetlViewResolver")
public BeetlSpringViewResolver getBeetlSpringViewResolver(BeetlGroupUtilConfiguration beetlGroupUtilConfiguration) {
BeetlSpringViewResolver beetlSpringViewResolver = new BeetlSpringViewResolver();
beetlSpringViewResolver.setContentType("text/html;charset=UTF-8");
beetlSpringViewResolver.setOrder(0);
beetlSpringViewResolver.setConfig(beetlGroupUtilConfiguration);
return beetlSpringViewResolver;
}
}
package com.ibeetl.blog.model;
@Table(name = "blog")
public class Blog {
private Long id;
private String content;
this.id = id;
}
public String getContent() {
return content;
}
public void setContent(String content) {
this.content = content;
}
public Boolean getDeleteFlag() {
return deleteFlag;
}
public void setDeleteFlag(Boolean deleteFlag) {
this.deleteFlag = deleteFlag;
}
public String getImg() {
return img;
}
public void setImg(String img) {
this.img = img;
}
public String getTitle() {
return title;
}
public void setTitle(String title) {
this.title = title;
}
public Date getCreateTime() {
return createTime;
}
public void setCreateTime(Date createTime) {
this.createTime = createTime;
}
public Date getUpdateTime() {
return updateTime;
}
public void setUpdateTime(Date updateTime) {
this.updateTime = updateTime;
}
public String getCategory() {
return category;
}
}
if (pageNumber > 0 && pageSize > 0) {
return query.desc(Blog::getCreateTime).page(pageNumber, pageSize);
}
return null;
}
@Override
public PageQuery<Message> pageMsg(Long blogId, long pageNumber, long pageSize) {
if (pageNumber < 1 || pageSize < 1 || blogId == null) {
return null;
}
return messageDao.createLambdaQuery()
.andEq(Message::getBlogId, blogId)
.andEq(Message::getDeleteFlag, false)
.desc(Message::getCreateTime)
.page(pageNumber, pageSize);
}
@Override
public Blog getBlogById(Long blogId) {
return blogDao.createLambdaQuery().andEq(Blog::getId, blogId).single();
}
@Override
public void saveMessage(Message message) {
Date now = new Date();
message.setCreateTime(now);
message.setUpdateTime(now);
message.setDeleteFlag(false);
messageDao.createLambdaQuery().insert(message);
}
@Override
public void saveBlog(Blog blog) {
Date now = new Date();
blog.setCreateTime(now);
blog.setUpdateTime(now);
blog.setDeleteFlag(false);
blogDao.createLambdaQuery().insertSelective(blog);
}
@Override
public List<String> listCategory() {
}
public void setContent(String content) {
this.content = content;
}
public Boolean getDeleteFlag() {
return deleteFlag;
}
public void setDeleteFlag(Boolean deleteFlag) {
this.deleteFlag = deleteFlag;
}
public String getImg() {
return img;
}
public void setImg(String img) {
this.img = img;
}
public String getTitle() {
return title;
}
public void setTitle(String title) {
this.title = title;
}
public Date getCreateTime() {
return createTime;
}
public void setCreateTime(Date createTime) {
this.createTime = createTime;
}
public Date getUpdateTime() {
return updateTime;
}
public void setUpdateTime(Date updateTime) {
this.updateTime = updateTime;
}
public String getCategory() {
return category;
}
public void setCategory(String category) {
@GetMapping("/tags")
public String tags(HttpServletRequest request) {
request.setAttribute("categorys", blogService.listCategory());
return "common/layout.html#tags";
}
@GetMapping("/createBlog")
public String createBlog(HttpServletRequest request) {
return "create.html";
}
@PostMapping("/saveBlog")
public String saveBlog(
Blog blog,
HttpServletRequest request) {
blogService.saveBlog(blog);
return "redirect:/";
}
@PostMapping("/saveMessage")
public String saveMessage(
Message message,
HttpServletRequest request) {
blogService.saveMessage(message);
return "redirect:/detail?id=" + message.getBlogId();
}
@GetMapping("/logout")
public String logout(HttpServletRequest request) {
request.getSession().removeAttribute("user");
return "redirect:/";
}
@GetMapping("/login")
public String login(@RequestParam(required = false) String userName,
@RequestParam(required = false) String password,
HttpServletRequest request) {
if (StringUtils.isEmpty(userName) || StringUtils.isEmpty(password)) {
return "login.html";
}
//进行登录业务
//根据用户名密码查询用户
User user = blogService.login(userName, password);
if (user == null) {
return "login.html";
shared.put("blogSiteTitle", title);
shared.put("blogCreateUser", "Gavin");
gt.setSharedVars(shared);
return gt;
}
@Bean
public BeetlGroupUtilConfiguration getBeetlGroupUtilConfiguration() {
BeetlGroupUtilConfiguration beetlGroupUtilConfiguration = new BeetlGroupUtilConfiguration();
//获取Spring Boot 的ClassLoader
ClassLoader loader = Thread.currentThread().getContextClassLoader();
if(loader==null){
loader = BeetlConfig.class.getClassLoader();
}
ClasspathResourceLoader cploder = new ClasspathResourceLoader(loader,
templatesPath);
beetlGroupUtilConfiguration.setResourceLoader(cploder);
beetlGroupUtilConfiguration.init();
//如果使用了优化编译器,涉及到字节码操作,需要添加ClassLoader
beetlGroupUtilConfiguration.getGroupTemplate().setClassLoader(loader);
return beetlGroupUtilConfiguration;
}
@Bean(name = "beetlViewResolver")
public BeetlSpringViewResolver getBeetlSpringViewResolver(BeetlGroupUtilConfiguration beetlGroupUtilConfiguration) {
BeetlSpringViewResolver beetlSpringViewResolver = new BeetlSpringViewResolver();
beetlSpringViewResolver.setContentType("text/html;charset=UTF-8");
beetlSpringViewResolver.setOrder(0);
beetlSpringViewResolver.setConfig(beetlGroupUtilConfiguration);
return beetlSpringViewResolver;
}
}
package com.ibeetl.blog.model;
@Table(name = "blog")
public class Blog {
private Long id;
private String content;
private Boolean deleteFlag;
@SpringBootApplication
@EnableCaching
public class StartApplication extends SpringBootServletInitializer implements WebApplicationInitializer {
public static void main(String[] args) {
org.springframework.context.ApplicationContext ac = SpringApplication.run(StartApplication.class, args);
String port = ac.getEnvironment().getProperty("server.port");
String url = "http://localhost:" + (port == null ? 8080 : port) + "";
System.out.println("启动后访问主页:" + url);
try {
System.setProperty("java.awt.headless", "false");
java.awt.Desktop.getDesktop().browse(new java.net.URI(url));//自动打开浏览器
} catch (Exception e) {
System.out.println("自动打开浏览器失败");
}
}
}
package com.ibeetl.blog.function;
public class PrintTime implements Function {
@Override
public String call(Object[] objects, Context context) {
Date date = (Date) objects[0];
Date now = new Date();
Long fiveM = date.getTime() + (5*60*1000);
Long thM = date.getTime() + (30*60*1000);
Long oneH = date.getTime() + (60*60*1000);
if(now.getTime() < fiveM){
return "刚刚";
}
if(now.getTime() < thM){
return "半小时前";
}
if(now.getTime() < oneH){
return "一小时前";
}
public void setUpdateTime(Date updateTime) {
this.updateTime = updateTime;
}
public Long getBlogId() {
return blogId;
}
public void setBlogId(Long blogId) {
this.blogId = blogId;
}
}
package com.ibeetl.blog;
public class GenCode {
public static void main(String[] args) throws Exception {
String driver = "com.mysql.cj.jdbc.Driver";
String url = "jdbc:mysql://mysql:3306/blog?useUnicode=true&characterEncoding=UTF-8&serverTimezone=GMT%2B8&useSSL=false&useInformationSchema=true";
String userName = "root";
String password = "8975789757";
ConnectionSource source = ConnectionSourceHelper.getSimple(driver, url, userName, password);
DBStyle mysql = new MySqlStyle();
// sql语句放在classpagth的/sql 目录下
SQLLoader loader = new ClasspathLoader("/sql");
// 数据库命名跟java命名一样,所以采用DefaultNameConversion,还有一个是UnderlinedNameConversion,下划线风格的,
UnderlinedNameConversion nc = new UnderlinedNameConversion();
// 最后,创建一个SQLManager,DebugInterceptor 不是必须的,但可以通过它查看sql执行情况
SQLManager sqlManager = new SQLManager(mysql, loader, source, nc, new Interceptor[]{new DebugInterceptor()});
sqlManager.genPojoCodeToConsole("user");
// sqlManager.genSQLTemplateToConsole("message");
}
}
package com.ibeetl.blog.model;
public String getUserName() {
return userName;
}
public void setUserName(String userName) {
this.userName = userName;
}
public Date getCreateTime() {
return createTime;
}
public void setCreateTime(Date createTime) {
this.createTime = createTime;
}
public Date getUpdateTime() {
return updateTime;
}
public void setUpdateTime(Date updateTime) {
this.updateTime = updateTime;
}
}
package com.ibeetl.blog;
@SpringBootApplication
@EnableCaching
public class StartApplication extends SpringBootServletInitializer implements WebApplicationInitializer {
public static void main(String[] args) {
org.springframework.context.ApplicationContext ac = SpringApplication.run(StartApplication.class, args);
String port = ac.getEnvironment().getProperty("server.port");
String url = "http://localhost:" + (port == null ? 8080 : port) + "";
System.out.println("启动后访问主页:" + url);
public class PrintTime implements Function {
@Override
public String call(Object[] objects, Context context) {
Date date = (Date) objects[0];
Date now = new Date();
Long fiveM = date.getTime() + (5*60*1000);
Long thM = date.getTime() + (30*60*1000);
Long oneH = date.getTime() + (60*60*1000);
if(now.getTime() < fiveM){
return "刚刚";
}
if(now.getTime() < thM){
return "半小时前";
}
if(now.getTime() < oneH){
return "一小时前";
}
SimpleDateFormat sdf = new SimpleDateFormat(objects[1].toString());
return sdf.format(date);
}
}
package com.ibeetl.blog.service;
public interface BlogService {
PageQuery<Blog> pageBlog(long pageNumber, long pageSize, String keyword,String category);
/***
* 查询留言内容
* @param blogId
* @param pageNumber
* @param pageSize
* @return
*/
PageQuery<Message> pageMsg(Long blogId, long pageNumber, long pageSize);
Blog getBlogById(Long blogId);
void saveMessage(Message message);
@Override
public PageQuery<Message> pageMsg(Long blogId, long pageNumber, long pageSize) {
if (pageNumber < 1 || pageSize < 1 || blogId == null) {
return null;
}
return messageDao.createLambdaQuery()
.andEq(Message::getBlogId, blogId)
.andEq(Message::getDeleteFlag, false)
.desc(Message::getCreateTime)
.page(pageNumber, pageSize);
}
@Override
public Blog getBlogById(Long blogId) {
return blogDao.createLambdaQuery().andEq(Blog::getId, blogId).single();
}
@Override
public void saveMessage(Message message) {
Date now = new Date();
message.setCreateTime(now);
message.setUpdateTime(now);
message.setDeleteFlag(false);
messageDao.createLambdaQuery().insert(message);
}
@Override
public void saveBlog(Blog blog) {
Date now = new Date();
blog.setCreateTime(now);
blog.setUpdateTime(now);
blog.setDeleteFlag(false);
blogDao.createLambdaQuery().insertSelective(blog);
}
@Override
public List<String> listCategory() {
List<Blog> blogList = blogDao.createLambdaQuery().groupBy("category").select();
return blogList.stream().map(Blog::getCategory).filter(o -> o != null).collect(Collectors.toList());
}
@Override
public User login(String userName, String password) {
return userDao.createLambdaQuery()
.andEq(User::getUserName, userName)
public void setNickName(String nickName) {
this.nickName = nickName;
}
public Date getCreateTime() {
return createTime;
}
public void setCreateTime(Date createTime) {
this.createTime = createTime;
}
public Date getUpdateTime() {
return updateTime;
}
public void setUpdateTime(Date updateTime) {
this.updateTime = updateTime;
}
public Long getBlogId() {
return blogId;
}
public void setBlogId(Long blogId) {
this.blogId = blogId;
}
}
package com.ibeetl.blog;
public class GenCode {
public static void main(String[] args) throws Exception {
String driver = "com.mysql.cj.jdbc.Driver";
String url = "jdbc:mysql://mysql:3306/blog?useUnicode=true&characterEncoding=UTF-8&serverTimezone=GMT%2B8&useSSL=false&useInformationSchema=true";
String userName = "root";
String password = "8975789757";
ConnectionSource source = ConnectionSourceHelper.getSimple(driver, url, userName, password);
DBStyle mysql = new MySqlStyle();
package com.ibeetl.blog.service;
public interface BlogService {
PageQuery<Blog> pageBlog(long pageNumber, long pageSize, String keyword,String category);
/***
* 查询留言内容
* @param blogId
* @param pageNumber
* @param pageSize
* @return
*/
PageQuery<Message> pageMsg(Long blogId, long pageNumber, long pageSize);
Blog getBlogById(Long blogId);
void saveMessage(Message message);
/***
* 保存博客
* @param blog
*/
void saveBlog(Blog blog);
List<String> listCategory();
User login(String userName, String password);
void deleteBlog(long id);
}
package com.ibeetl.blog.config;
@Override
public String call(Object[] objects, Context context) {
Date date = (Date) objects[0];
Date now = new Date();
Long fiveM = date.getTime() + (5*60*1000);
Long thM = date.getTime() + (30*60*1000);
Long oneH = date.getTime() + (60*60*1000);
if(now.getTime() < fiveM){
return "刚刚";
}
if(now.getTime() < thM){
return "半小时前";
}
if(now.getTime() < oneH){
return "一小时前";
}
SimpleDateFormat sdf = new SimpleDateFormat(objects[1].toString());
return sdf.format(date);
}
}
package com.ibeetl.blog.service;
public interface BlogService {
PageQuery<Blog> pageBlog(long pageNumber, long pageSize, String keyword,String category);
/***
* 查询留言内容
* @param blogId
* @param pageNumber
public Boolean getDeleteFlag() {
return deleteFlag;
}
public void setDeleteFlag(Boolean deleteFlag) {
this.deleteFlag = deleteFlag;
}
public String getImg() {
return img;
}
public void setImg(String img) {
this.img = img;
}
public String getTitle() {
return title;
}
public void setTitle(String title) {
this.title = title;
}
public Date getCreateTime() {
return createTime;
}
public void setCreateTime(Date createTime) {
this.createTime = createTime;
}
public Date getUpdateTime() {
return updateTime;
}
public void setUpdateTime(Date updateTime) {
this.updateTime = updateTime;
}
public String getCategory() {
return category;
}