java - 将查询结果打印到jsp表 Java Spring MVC jsp

标签 java mysql hibernate date model-view-controller

我需要打印到表中年龄超过 55 岁的人,但它会打印数据库中的每个人。我不知道出了什么问题。

@Override
    @SuppressWarnings("unchecked")
    public List<Book> old1() {
        Session session = this.sessionFactory.getCurrentSession();
//        List<Book> bookListt = session.createQuery("SELECT BOOK_TITLE, BOOK_AUTHOR, birthday FROM bookmanager.books WHERE birthday <= DATE_SUB(CURDATE(), INTERVAL 15 year)").list();
        List<Book> bookList1 = session.createSQLQuery("SELECT ID, BOOK_TITLE, BOOK_AUTHOR, born FROM bookmanager.book  WHERE born <= DATE_SUB(CURDATE(), INTERVAL 10 year))").list();

        return bookList1;
    }

Controller :

@RequestMapping(value = "books", method = RequestMethod.GET)
    public String old(Model model){
        model.addAttribute("book", new Book());
        model.addAttribute("old", this.bookService.listBooks());

        return "books";
    }

我尝试打印那个人,但这是错误的。从数据库打印所有人

如何修复它?

<c:if test="${!empty old1}">
    <table class="tg">
        <tr>
            <th width="80">ID</th>
            <th width="120">Title</th>
            <th width="120">Author</th>
            <th width="120">Price</th>
            <th width="120">born</th>
            <th width="60">Edit</th>
            <th width="60">Delete</th>
        </tr>
        <c:forEach items="${old1}" var="book1">
            <tr>
                <td>${book1.id}</td>
                <td><a href="/bookdata/${book1.id}" target="_blank">${book.bookTitle}</a></td>
                <td>${book1.bookAuthor}</td>
                <td>${book1.price}</td>
                <td>${book1.born}</td>
                <td><a href="<c:url value='/edit/${book1.id}'/>">Edit</a></td>
                <td><a href="<c:url value='/remove/${book1.id}'/>">Delete</a></td>
            </tr>
        </c:forEach>
    </table>
</c:if>

最佳答案

我不确定您的 Hibernate/Java 代码是否完全正确,但您的 MySQL 查询看起来不正确。如果您想要定位 born 字段自当前日期起超过 55 年的所有图书,请使用以下命令:

SELECT id, bookTitle, bookAuthor, birthday
FROM Book
WHERE born <= DATE_SUB(CURDATE(), INTERVAL 55 year)
ORDER BY born;

关于java - 将查询结果打印到jsp表 Java Spring MVC jsp,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52569106/

相关文章:

java - 具有多个数据库的 JPA (Hibernate)

java - 使用复合键的 Hibernate XML 子类化

java - SmartGWT,将 HTML 附加到 HTMLPane

MYSQL Reservation 查询,查询两个日期之间的每一天

php - 使用 php 进行选择

php - 将 XML 值导入 MYSQL

java - 如何将 char 元素数组向左移动

java - 使用 Gradle 6 构建避免拆分包的附加工件

Java实现构建器模式的最佳方式

java - 从数据库读取用户的问题