在SSM分模块的开发中 模糊查询的实现(以根据博客标题中 包含的关键字 进行查询)

本文详细介绍在SSM框架中如何实现基于博客标题的模糊查询功能,包括在Dao层、Service层、Controller层的具体实现步骤,以及在MyBatis配置文件和JSP页面上的操作。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.在BlogDao下创建相应的方法

public interface BlogDao
{
    void addBlog(Blog blog);
    Blog getBlogById(int blogId);
    void deleteBlogById(int blogId);
    void updateBlogById(int blogId);
    List<Blog> findBlogByuserId(String userId);

    //根据博客标题进行 模糊查询博客
    List<Blog> findBlogByblogTitle(String blogTitle);
}

2.在BlogMapper.xml中添加查询语句

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
<mapper namespace="edu.whut.five.dao.BlogDao">

<!-- 根据博客标题查询-->
    <select id="findBlogByblogTitle" parameterType="java.lang.String" resultType="edu.whut.five.beans.Blog">
        select * from blog where blogTitle like concat('%',#{blogTitle},'%')
    </select>

</mapper>

3.在BlogService中添加相应的方法

public interface BlogService
{
    void addBlog(Blog blog);

    Blog getBlogById(int blogId);

    void deleteBlogById(int blogId);

    void updateBlogById(int blogId);

    List<Blog> findBlogByuserId(String userId);

    List<Blog> findBlogByuserId(String userId, int page, int size);

    //根据标题 查询博客
    List<Blog> findBlogByblogTitle(String blogTitle);
}

4.在BlogServiceImpl中添加BlogService的实现方法

@Service
public class BlogServiceImpl implements BlogService
{
    @Autowired
    private BlogDao blogDao;

    @Override
    public void addBlog(Blog blog)
    {
        blogDao.addBlog(blog);
    }

    @Override
    public void deleteBlogById(int blogId)
    {
        blogDao.deleteBlogById(blogId);
    }

    @Override
    public void updateBlogById(int blogId)
    {
        blogDao.updateBlogById(blogId);
    }

    @Override
    public Blog getBlogById(int blogId)
    {
        return blogDao.getBlogById(blogId);
    }

    @Override
    public List<Blog> findBlogByuserId(String userId)
    {
        return blogDao.findBlogByuserId(userId);
    }

    @Override
    public List<Blog> findBlogByuserId(String userId, int page, int size)
    {
        //告诉 开始分页
        PageHelper.startPage(page, size);
        return blogDao.findBlogByuserId(userId);
    }

    //根据标题查询博客
    @Override
    public List<Blog> findBlogByblogTitle(String blogTitle) {
        return blogDao.findBlogByblogTitle(blogTitle);
    }
}

5.在BlogController中的实现

@Controller
@RequestMapping("/blog")
public class BlogController
{
    @Autowired
    private BlogService blogService;

    @RequestMapping("/addBlog.do")
    public String addBlog(Blog blog)
    {
        //System.out.println(blog);
        Date date= new java.sql.Date(new java.util.Date().getTime());
        blog.setBlogCreateTime(date);
        blogService.addBlog(blog);
        return "redirect:/login/findUserBlog.do";
    }

    @RequestMapping("/getBlogById.do")
    public ModelAndView getBlogById(int blogId)
    {
        Blog blog = blogService.getBlogById(blogId);
        ModelAndView mv=new ModelAndView();
        mv.addObject("blog",blog);
        mv.setViewName("showBlog");
        return mv;
    }

    @RequestMapping("/deleteBlog.do")
    public String deleteBlogById(int blogId)
    {
        blogService.deleteBlogById(blogId);
        return null;
    }

    @RequestMapping("/updateBlogById.do")
    public String updateBlogById(int blogId)
    {
        blogService.updateBlogById(blogId);
        return null;
    }

//  根据标题  搜索博客
    @RequestMapping("/findBlogByblogTitle.do")
    public ModelAndView findBlogByblogTitle(String blogTitle)
    {

        List<Blog> blogList = blogService.findBlogByblogTitle(blogTitle);
        ModelAndView mv = new ModelAndView();
        mv.addObject("blogList", blogList);
        mv.setViewName("blog-search");
        return mv;
    }


}

6.在JSP中的表单提交

<form action="${pageContext.request.contextPath}/blog/findBlogByblogTitle.do" method="post">
					<div class="w_search">
						<div class="w_searchbox">
							<input type="text" placeholder="search" name="blogTitle"/>
							<button>搜索</button>
						</div>
					</div>
				</form>

7.最终在blog-search.jsp中的输出实现

<c:forEach var="blog" items="${blogList}">
                    <div class="layui-col-md12">
                        <div class="main list">
                            <div class="subject"><a href="javascript:;" class="caty">${blog.blogTag}</a><a href="javascript:;" title="用DTcms做一个独立博客网站(响应式模板)">${blog.blogTitle}</a><em>${blog.blogCreateTime}发布</em></div>
                            <div class="content layui-row">
                                <div class="layui-col-md4 list-img">
                                    <a href="javascript:;"><img src="http://www.muzhuangnet.com/upload/201610/18/201610181739277776.jpg"></a>
                                </div>
                                <div class="layui-col-md8">
                                    <div class="list-text">${blog.blogContents}这里是博客内容,这里是博客内容,这里是博客内容,这里是博客内容</div>
                                    <div class="list-stat layui-row">

                                        <div class="layui-col-xs3 layui-col-md3 Label">
                                            <i class="layui-icon layui-icon-note"></i>
                                            <a href="javascript:;">${blog.blogCatagory}</a>
                                            <em>${blog.blogAgreeCount}次点赞</em>
                                        </div>

                                        <div class="layui-col-xs3 layui-col-md3">
                                            <i class="layui-icon layui-icon-reply-fill"></i>
                                            <em>${blog.blogKeepCount}次收藏</em>
                                        </div>

                                        <div class="layui-col-xs3 layui-col-md3">
                                            <i class="layui-icon layui-icon-read"></i>
                                            <em>${blog.blogVisitCount}次阅读</em>
                                        </div>

                                        <div class="layui-col-xs3 layui-col-md3 alink">
                                            <a href="javascript:;" class="layui-btn layui-btn-xs">阅读原文</a>
                                        </div>
                                    </div>
                                </div>
                            </div>
                        </div>
                    </div>
                    <div class="layui-col-md12 margin20"></div>
                </c:forEach>

实现上述代码即可在SSM分模块的开发中中实现基本的模糊查询

MySQL 的模糊查询可参考:https://blog.youkuaiyun.com/qq_43524683/article/details/94012900


评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值