您所在的位置:开发 > Java > Hibernate用法:查询,更新,删除!(3)

Hibernate用法:查询,更新,删除!(3)

2006-11-07 14:54 老高 Csdn博客 我要评论(0) 字号:T | T
一键收藏,随时查看,分享好友!

本文介绍了基本数据查询(使用一种类似SQL的HQL来设定查询的条件)以及更新和删除数据,给出了程序源代码和运行中需要注意的事项以及结果代码,供网友参考!Hibernate对于数据的更新、删除等动作,是依赖id值来判定,如果您已知id值,则可以使用load()方法来加载资料。

AD:

unsaved-value

可以设定的值包括:

◆any - 总是储存
◆none - 总是更新
◆null - id为null时储存(预设)
◆valid - id为null或是指定值时储存
 
这样设定之后,您可以使用session.saveOrUpdate(updated);来取代上一个程序的session.update(updated);方法。
 
如果要删除数据,只要使用delete()方法即可,直接看个例子。

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");
User updated = null;
for (ListIterator iterator = users.listIterator(); iterator.hasNext(); ) {
User user = (User) iterator.next();
if(updated == null)
updated = user;     
System.out.println(user.getName() +
"\n\tAge: " + user.getAge() +
"\n\tSex: " + user.getSex());
}
session.delete(updated);
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());
}      
}
}

一个执行的结果范例如下:

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,

ser0_.age as age from USER user0_
justin
Age: 28
Sex: M
momor
Age: 25
Sex: F
Bush
Age: 25
Sex: M
Becky
Age: 35
Sex: F
Hibernate: delete from USER where user_id=?
Hibernate: select user0_.user_id as user_id, user0_.name as name, user0_.sex as sex,

ser0_.age as age from USER user0_
momor
Age: 25
Sex: F
Bush
Age: 25
Sex: M
Becky
Age: 35
Sex: F
User user = (User) session.load(User.class, id);

Hibernate对于数据的更新、删除等动作,是依赖id值来判定,如果您已知id值,则可以使用load()方法来加载资料。这边我们先介绍的是一些简单的查询动作,将来有机会的话,再介绍一些进阶的查询,如果您想要先认识一些HQL,可以看看参考手册的第11章,当中对于HQL有详细的说明。

(责任编辑 火凤凰 sunsj@51cto.com  TEL:(010)68476636-8007)


内容导航

分享到:

网友评论TOP5

查看所有评论(

提交评论

  1. 专题:JVM编程语言,你的选择?
  2. 宅男程序员给老婆课程之11:域模型

文章排行

本月本周24小时

热点专题

更多>>

读书

《ASP.NET AJAX Web 应用开发秘诀(VB版)》
本书详细介绍了AJAX在Web开发上的应用。主要内容包括:ASP.NET AJAX技术概述、实现异步局部更新页面、UpdatePanel编程功能、Page

51CTO旗下网站

领先的IT技术网站 51CTO 领先的中文存储媒体 WatchStor 中国首个CIO网站 CIOage 中国首家数字医疗网站 HC3i 移动互联网生活门户 灵客风LinkPhone