《partner4java 讲述 p4jorm》之第三步:hibernate、jpa的使用(二)

2014-11-24 11:33:05 · 作者: · 浏览: 14
写查询SQL呢?
好吧,我帮你实现,而且不对你奢求太多工作:
如果你使用了struts类似框架,你一定有一层叫formbean,你只需要在formbean为几个需要参与查询字段加上注解就可以了(额外让你劳苦了几秒钟)。
(首先说明一点哈,form的提交到formbean中的数据封装,这是MVC框架的工作,我不会帮你做)
我们这里没有使用MVC框架,直接使用了Servlet:com.partner4java.jdbctest.web.UserListServlet(这个不是我们的重点就不贴出来了,自己去看附件)
我们定义了formbean:
[java]
public class ContactFormBean implements Serializable {
private static final long serialVersionUID = 4358513464951563450L;
private String realName;
private String qq;
private String address;
有了formbean我们还是加俩注解:
P4jQueryForm(标注于类上,表明本类的字段赋值会用于查询拼写,必须指定本注解)、P4jGeneral(用于声明某字段为普通查询,如等值查询)、P4jLike(用于声明某字段为like模糊查询),具体查看附件文档
[java]
/**
* 你会发现和我的Contact类很相似,通常情况下formbean会比entity少很多字段,或者多一些时间字段,这不是我们这里的重点,就不多解释了
*
* @author partner4java
*
*/
@P4jQueryForm
public class ContactFormBean implements Serializable {
private static final long serialVersionUID = 4358513464951563450L;
// 表示我们会查找名字为此的数据
@P4jGeneral(generalQueryType = GeneralQueryType.EQ)
private String realName;
// 我没有任何注解,不会参与查询
private String qq;
// 表示我们会根据地址模糊查询
@P4jLike
private String address;
接下来就是我们的Servlet(和往常一样)这里就不贴出来了:
[java]
//你会发现,你至始至终没有进行HQL封装,只是传入了formbean,我就给你返回了结果列表
PageData pageData = contactDao.query(formBean, new PageIndex(new Integer(currentPage)), null);
jsp和普通的界面一样,我又给大家封装了一个分页:
[ html]
${pageData.pageIndex.startPage + varStatus.count - 1}
www.2cto.com
使用非常简单。
jsp方面,我们只需要完成一个类似于users.jsp:
[html]
用户名:
地址:

${user.username } -- ${user.password } -- ${user.address }
<%@ include file="fenye.jsp"%>
到目前为止我们已经完成了CURD操作,回想一下,我都额外需要你做什么?至始至终只给formbean添加三个注解,你就摆脱了CURD的书写,连HQL都不需要自己拼写。