.addClass(Product.class);
SessionFactory sf = cfg.buildSessionFactory();
// 打开会话
Session sess = sf.openSession();
// 搜索并返回
List list = sess.find(query, name,
Hibernate.STRING);
if (list.size() == 0) {
System.out.println("No products named "
+ name);
System.exit(0);
}
Product p = (Product) list.get(0);
sess.close();
System.out.println("Found product: " + p);
}
} 在FindProductByName中有几点值得注意:
- 有一个具有where子句的query字符串,这与标准SQL语句很相似。
- 初始化Hibernate的方法与第一个示例中一样。这一次,我们有配置文件和映射文件。
- sess.find()执行查询,并将提供的产品名称设置为类型Hibernate.STRING的搜索参数。
- 作为结果,我们得到一个包含所找到的Product的java.util.List。
- 使用Product p = (Product) list.get(0); 我们用通常的类型转换方法获取找到的对象。
执行java test.FindProductByName Milk,查看显示在控制台中的内容。
注意:查询是区分大小写的,所以搜索小写的milk将不会返回任何结果。使用lower()或upper()SQL函数来启用不区分大小写的搜索。在这种情况下,我们会在查询字符串中使用where lower(product.name)=lower(:name)。关于查询的详细内容,请参见文档。此外,如果不希望显示所有的INFO日志信息,可以修改log4j.properties文件,将日志等级设置为warn。
更新和删除产品
到现在为止,您
<< 上一页 [11] [12] [13] [14] [15] [16] [17] 下一页
|