混合Eclipse、WTP、Struts和Hibernate - 编程入门网
ot;);
sta.setInt(1, cust.getId());
sta.setString(2, cust.getFirstName());
sta.setString(3, cust.getLastName());
sta.setString(4, cust.getAddress());
int rows_updated = sta.executeUpdate();
sta.close();
return new Integer(rows_updated);
}
该方法比较冗长,并且要求编码的开发人员对JDBC有所了解:比如,如何创建和执行预处理语句。此外,如果想要将数据库从MySQL转变为其他类型,开发人员需要重新编写SQL,因为不同数据库的SQL也许各不相同。使用Hibernate,只需要更改hibernate.cfg.xml配置文件中的SQL对话。清单12列出了我们的相应executeHibernateOperation()方法。 清单12:CreateCustomer类的executeHibernateOperation()方法
在清单12中,我们告诉会话对象将类保存到数据库中。不需要SQL,不需要JDBC知识,不必对列和数据库表名称进行硬编码。如果必须更改表或列名称,我们也不必重新编写应用程序中的多行代码。Hibernate知道如何保存对象,不管该对象是否已经存在于数据库中。执行INSERT或UPDATE操作,Hibernate可以以乐观方式进行检查(即尝试执行UPDATE,如果失败,则执行INSERT),或以悲观方式进行检查(即执行SELECT,检查是否存在该行,如果存在,即执行UPDATE,否则执行INSERT)。命令执行后,将刷新会话并确保所有数据库命令都已经被及时执行,框架缓冲区中没有任何剩余。对CreateOrder类执行类似的操作。 首先,我们在JDBC版本中处理的两个操作,CreateCustomer和CreateOrder,是数据库插入操作。然而,想要让应用程序工作,还必须处理数据库查询。我们使用ListCustomers和ListCustomerOrders命令来实现这一功能。我们先来看看如何获取用户列表。 清单13:ListCustomers类的executeDatabaseOperation()方法
混合Eclipse、WTP、Struts和Hibernate(8)时间:2010-12-31 bea Boris Minkin清单13包含了大量JDBC调用。首先,创建SQL语句,并使用硬编码的列和表名执行该语句,接下来,检查数据库查询的ResultSet,根据从数据库表读取的行数据,构建一个用户域对象,同时记住列顺序或名称。这些操作都易于出错,同时一旦需要更改数据库表,这些操作都难以维持。而Hibernate正好可以解决这些问题。Hibernate引入了名为Hibernate Query Language (Hibernet查询语言,HQL)的全新语言,在这种语言中,用户不用查询数据库表,只需要查询对象。清单14列出了我们使用的executeHibernateOperation()方法。 清单14:ListCustomers类的executeHibernateOperation()方法
|
凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢! |