Getting Started 07 - Update, Delete Data
If you take the data in the same session and want to update immediately, just query and remove the object, set a new value through the setxxx () method, then call session.flush () to be in the same Update the specified data in the session, for example:
Hibernatetest.java
Import Onlyfun.caterpillar. *;
Import net.sf.hibernate. *;
Import net.sf.hibs. *;
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 itrator = users.listiterator (); item.hasnext ();) {
User User = (user) iterator.next ();
IF (Updated == NULL)
Updated = user;
System.out.println (user.getname ()
"/ N / TAGE:" user.getage ()
"/ n / tsex:" user.getSex ());
}
Updated.setname ("Justin");
Session.flush ();
Users = session.find ("from user");
session.close ();
SessionFactory.Close ();
For (listiterator itrator = users.listiterator (); item.hasnext ();) {
User User = (user) iterator.next ();
System.out.println (user.getname ()
"/ N / TAGE:" user.getage ()
"/ n / tsex:" user.getSex ());
}
}
}
This program displays all the data in the data table and updates the first data in the data table, and the result of the execution is as follows:
Log4j: warn no appenders could be bound for logger (net.sf.hibernate.cfg.environment).
Log4J: Warn Please Initialize The log4j system prot in.
Hibernate: select user0_.user_id as user_id, user0_.name as name, user0_.sex as sex, user0_.age as agomb user user0_
Caterpillar
Age: 28
SEX: M
MoMor
Age: 25
SEX: F
Bush
Age: 25
SEX: M
Becky
Age: 35
SEX: fHibernate: Update user set name =?, Sex = ?, age =? Where user_id =?
Hibernate: select user0_.user_id as user_id, user0_.name as name, user0_.sex as sex, user0_.age as agomb user user0_
Justin
Age: 28
SEX: M
MoMor
Age: 25
SEX: F
Bush
Age: 25
SEX: M
Becky
Age: 35
SEX: F
If you turn on a session, remove the data from the data table to the user interface, then close the session, when the user is operating and pressing, then you want to re-open a session, use Update Methods The data in the object is updated to the corresponding data table, and an example is as follows:
Hibernatetest.java
Import Onlyfun.caterpillar. *;
Import net.sf.hibernate. *;
Import net.sf.hibs. *;
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");
// Close this session
session.close ();
User updated = NULL;
For (listiterator itrator = users.listiterator (); item.hasnext ();) {
User User = (user) iterator.next ();
IF (Updated == NULL)
Updated = user;
System.out.println (user.getname ()
"/ N / TAGE:" user.getage ()
"/ n / tsex:" user.getSex ());
}
// Users make some operations, then store
Updated.setname ("CATERPILLAR");
/ / Open a new session
SESSION = sessionFactory.openSession ();
// update data
session.Update (Updated);
Users = session.find ("from user");
session.close ();
SessionFactory.Close ();
For (listiterator itrator = users.listiterator (); item.hasnext ();) {
User User = (user) iterator.next ();
System.out.println (user.getname ()
"/ N / TAGE:" user.getage ()
"/ n / tsex:" user.getsex ());
}
}
The results of this program execution are as follows, you can see which SQL doctually executed:
Log4j: warn no appenders could be bound for logger (net.sf.hibernate.cfg.environment).
Log4J: Warn Please Initialize The log4j system prot in.
Hibernate: select user0_.user_id as user_id, user0_.name as name, user0_.sex as sex, user0_.age as agomb user user0_
Justin
Age: 28
SEX: M
MoMor
Age: 25
SEX: F
Bush
Age: 25
SEX: M
Becky
Age: 35
SEX: F
Hibernate: Update user set name =?, Sex = ?, agn =? Where user_id =?
Hibernate: select user0_.user_id as user_id, user0_.name as name, user0_.sex as sex, user0_.age as agomb user user0_
Caterpillar
Age: 28
SEX: M
MoMor
Age: 25
SEX: F
Bush
Age: 25
SEX: M
Becky
Age: 35
SEX: F
Hibernate provides a SaveorUpdate () method, providing a unified operational interface for the storage or update of the data. By defining the image file, set the
User.hbm.xml
id>
Unsaved-value
The values that can be set include:
Any - Always store
None - always updated
NULL - ID Save (Preset) when NULL
Valid - ID Save when NULL or specified value
After setting, you can use session.saveorupdate (Updated); to replace the session.Update (Updated) of the previous program. If you want to delete the data, just look at the exemplary using the delete () method.
Hibernatetest.java
Import Onlyfun.caterpillar. *;
Import net.sf.hibernate. *;
Import net.sf.hibs. *;
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 itrator = users.listiterator (); item.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 itrator = users.listiterator (); item.hasnext ();) {
User User = (user) iterator.next ();
System.out.println (user.getname ()
"/ N / TAGE:" user.getage ()
"/ n / tsex:" user.getSex ());
}
}
}
An example of an execution is as follows:
Log4j: warn no appenders could be bound for logger (net.sf.hibernate.cfg.environment).
Log4J: Warn Please Initialize The log4j system prot in.
Hibernate: select user0_.user_id as user_id, user0_.name as name, user0_.sex as sex, user0_.age as agomb 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 agomb user user0_
MoMor
Age: 25
SEX: F
Bush
Age: 25
SEX: M
Becky
Age: 35
SEX: F
Hibernate is updated, delete, etc.
User User = (user) session.load (user.class, id);
More descriptions about Hibernate data update operations, you can take a look at the Chapter 9 of the Reference Manual.