当前位置: 移动技术网 > IT编程>开发语言>Java > jsp Hibernate入门教程第1/3页

jsp Hibernate入门教程第1/3页

2017年12月12日  | 移动技术网IT编程  | 我要评论
例如: 复制代码 代码如下:hibernatetest.java import onlyfun.caterpillar.*; import net.sf.hibernate

 hibernate提供了一个saveorupdate()方法,为数据的储存或更新提供了一个统一的操作接口,藉由定义映像文件时,设定<id>标签的unsaved-value来决定什么是新的值必需,什么是已有的值必须更新:
user.hbm.xml
复制代码 代码如下:

<id name="id" type="string" unsaved-value="null">
<column name="user_id" sql-type="char(32)" />
<generator class="uuid.hex"/>
</id>

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, user0_.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, user0_.age as age from user user0_
momor
age: 25
sex: f
bush
age: 25
sex: m
becky
age: 35
sex: f
 hibernate对于数据的更新、删除等动作,是依懒id值来判定,如果您已知id值,则可以使用load()方法来加载资料,例如:
user user = (user) session.load(user.class, id);
 更多有关于hibernate资料更新操作的说明,您可以看看参考手册的第九章内容。
3

如您对本文有疑问或者有任何想说的,请 点击进行留言回复,万千网友为您解惑!

相关文章:

验证码:
移动技术网