《partner4java 讲述 p4jorm》之第三步:hibernate、jpa的使用
(本测试项目--Helloworld下载地址: http://download.csdn.net/detail/partner4java/5045151为了减少刷屏,一些比如POJO的get和set方法就省略了,具体查看下载包)
相对于 p4jorm 对 JDBC的支持,hibernate和jpa的亮点在于formbean封装部分。
我们接下来将学习两部分:
1、省略Hibernate的dao或service代码。(能够做到大部分基本CURD,一行dao或service代码都不写)
2、简化HQL的封装。虽然我们使用ORM框架不需要书写SQL语句,但是HQL的查询条件等还是需要手工拼写,这里我们将帮您省去。
我们接下来不会像上一篇“《partner4java 讲述 p4jorm》之第二步:jdbc的使用 ”讲述细致,因为会hibernate的同学想必对spring也有了解,若真心不会spring,请查看:http://blog.csdn.net/partner4java/article/details/8194747
假设我们现在的hibernate实体、映射文件、spring配置文件等都已经完成(具体请查看附件测试项目):
entity -- Contact:
[html] view plaincopy使用非常简单。
- <input type="hidden" name="currentPage" value="${pageData.pageIndex.currentPage }"/>
- <div class="pager">
- <c:if test="${pageData.pageIndex.currentPage > 1 }">
- <a class="prv" href="javascript:topage('${pageData.pageIndex.currentPage - 1 }')"><span>上一页</span></a>
- </c:if>
- <c:forEach begin="${pageData.pageIndex.startPage }" end="${pageData.pageIndex.endPage }" varStatus="varStatus">
- <c:if test="${pageData.pageIndex.currentPage == (pageData.pageIndex.startPage + varStatus.count - 1) }">
- <strong><span>${pageData.pageIndex.startPage + varStatus.count - 1} </span></strong>
- </c:if>
- <c:if test="${pageData.pageIndex.currentPage != (pageData.pageIndex.startPage + varStatus.count - 1) }">
- <a href="javascript:topage('${pageData.pageIndex.startPage + varStatus.count - 1 }') "><span>${pageData.pageIndex.startPage + varStatus.count - 1} </span></a>
- </c:if>
- </c:forEach>
- <c:if test="${pageData.pageIndex.currentPage < pageData.totalCount/pageData.pageIndex.maxResult}">
- <a class="next" href="javascript:topage('${pageData.pageIndex.currentPage + 1}') "><span>下一页</span></a>
- </c:if>
- </div>
jsp方面,我们只需要完成一个类似于users.jsp:[html] view plaincopy到目前为止我们已经完成了CURD操作,回想一下,我都额外需要你做什么?至始至终只给formbean添加三个注解,你就摆脱了CURD的书写,连HQL都不需要自己拼写。
- <form action="userlist" method="post">
- 用户名:<input type="text" name="username" value="${username }"/><br/>
- 地址:<input type="text" name="address" value="${address }"/>
- <input type="submit" value="查询"/><br/>
- <c:forEach items="${pageData.resultlist }" var="user">
- ${user.username } -- ${user.password } -- ${user.address } <br/>
- </c:forEach>
- <%@ include file="fenye.jsp"%>
- </form>