Hibernate用法:查询 更新 删除!.pdf
文本预览下载声明
Hibernate 用法:查询,更新,删除!
本文介绍了基本数据查询(使用一种类似SQL 的HQL来设定查询的条件)以及更
新和删除数据,给出了程序源代码和运行中需要注意的事项以及结果代码,供网
友参考!Hibernate对于数据的更新、删除等动作,是依赖id值来判定,如果
您已知id值,则可以使用load()方法来加载资料。
一、基本数据查询
使用Hibernate进行数据查询是一件简单的事,Java程序设计人员可以使用对
象操作的方式来进行数据查询,查询时使用一种类似SQL 的HQL (Hibernate
Query Language)来设定查询的条件,与SQL不同的是,HQL是具备对象导向的
继承、多型等特性的语言。
直接使用范例来看看如何使用Hibernate进行数据库查询,在这之前,请先照之
前介绍过的主题在数据库中新增几笔数据:
查询数据时,我们所使用的是Session 的find()方法,并在当中指定HQL设定
查询条件,查询的结果会装载在List对象中传回,您所需要的是将它们一一取
出,一个最简单的例子如下:
HibernateTest.java
import onlyfun.caterpillar.*;
import net.sf.hibernate.*;
import net.sf.hibernate.cfg.*;
import java.util.*;
public class HibernateTest {
public static void main (String [] args) throws
HibernateException {
SessionFactory sessionFactory
new Configuration ().configure ().buildSessionFactory ();
Session session sessionFactory.openSession ();
List users session.find (from User);
session.close ();
sessionFactory.close ();
for (ListIterator iterator users.listIterator ();
iterator.hasNext (); ) {
User user (User) iterator.next ();
System .out.println (user.getName () +
\n\tAge: + user.getAge () +
\n\tSex: + user.getSex ());
}
}
}
find()中的“fromUser”即HQL,User指的是User类别,藉由映射文件,它将
会查询USER表格中的数据,相当于SQL 中的SELECT * FROM USER,实际上我们
的User类别是位于onlyfun.caterpillar下,Hibernate会自动看看import中
的package名称与类别名称是否符合,您也可以直接指定package名称,例如:
session.find (from onlyfun.caterpillar.User);
这个程序的运行结果可能是这样的:
log4j:WARN No appenders could be found for
logger
(net.sf.hibernate.cfg.Environment).
log4j:WARN Please initialize the log4j
system properly.
Hibernate: select user0_ .user_id as
user_id, user0_ .name as name, user0_ .sex as
sex,
user0_ .age as age from USER user0_
caterpillar
Age: 28
Sex: M
momor
Age: 25
Sex: F
显示全部