基于mybatis的图书馆模糊查询系统

介绍

模糊查询是通过检索与目标相关的关键字来获得目标全部信息的方法。
多使用sql语句实行查询。
例如搜索字母‘a’,则可以查询出所有包含’a’ 的信息。
用于图书查询就可以通过几个关键字检索出与之相关的所有书籍。

代码实现

1.首先配置环境:
在mybatis的根目录下引入映射文件

` <mapper resource="cn/kgc/kb07/dao/BookMapper.xml"></mapper>`

<?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="cn.kgc.kb07.dao.BookMapper">

2.在dao层中新建一个接口,其中设置接口方法 获取书籍列表:

List<Books> quaryBooks(@Param("book_name") String book_name, @Param("type_name")String type_name);

3.同层配置xml文件,编写sql语句:

<mapper namespace="cn.kgc.kb07.dao.BookMapper">
    <select id="quaryBooks" resultType="books">
        select b.*,t.type_name from books b ,books_type t where 1=1
        <if test="book_name!=null and book_name!='' ">
            and book_name like concat("%",#{book_name},"%")
        </if>
        <if test="type_name!=null and type_name!=''">
            and type_name=#{type_name}
        </if>
        ;
    </select>
</mapper>

4.创建book类,其名称要与sql数据库中的对应。

    private int book_id;
    private String book_name;
    private double price;
    private int store;
    private String des;
    private int book_type;
    private String type_name;
   

5.使用单例模式编写创建SqlSession的类

public class MapperConfg {
    public SqlSession getSession(){
        SqlSession session=null;
        SqlSessionFactoryBuilder builder=new SqlSessionFactoryBuilder();
        try {
            InputStream is= Resources.getResourceAsStream("mybatis-cfg.xml");
            SqlSessionFactory factory=builder.build(is);
             session=factory.openSession();
        } catch (IOException e) {
            e.printStackTrace();
        }
        return session;
    }
}

6.定义BookService接口方法

public class BooksServices {
    public List<Books> queryBooks(String book_name, String type_name) {
        MapperConfg mapperConfg=new MapperConfg();
        SqlSession session=mapperConfg.getSession();
        return session.getMapper(BooksDao.class).quaryBooks(book_name,type_name);
    }
}

7.servlet层方法重写

public class QueryBooksServlet extends HttpServlet {
    @Override
    protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        String book_name=req.getParameter("book_name");
        String type_name=req.getParameter("type_name");
        BooksServices services=new BooksServices();
        List<Books> booksList= services.queryBooks(book_name,type_name);

            req.getSession().setAttribute("books",booksList);
            resp.sendRedirect("studentlogin.jsp");

    }

8.编写前台展示jsp文件:

<form action="querybooks.do" method="get">
    图书名:<input type="text" name="book_name">图书类型:<input type="text" name="type_name">
    <input type="submit" value="点击查询">
</form>
<hr/>
<table>
    <tr>
        <th>编号</th>
        <th>书名</th>
        <th>价格</th>
        <th>库存</th>
        <th>简介</th>
        <th>类型</th>
    </tr>

    <c:if test="${books!=null}">
    <c:forEach items="${books}" var="user">
        <tr>
            <td>${user.book_id}</td>
            <td>${user.book_name}</td>
            <td>${user.price}</td>
            <td>${user.store}</td>
            <td>${user.des}</td>
            <td>${user.type_name}</td>
        </tr>
    </c:forEach>
    </c:if>

</table>
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值