基于javaweb+mysql的springboot简单博客管理系统(java+springboot+html+maven+mysql)

基于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版本;

技术栈

  1. 后端:SpringBoot

  2. 前端:HTML+CSS+JavaScript+jsp

使用说明

  1. 使用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;
    }

请添加图片描述
请添加图片描述
请添加图片描述
请添加图片描述
请添加图片描述
请添加图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值