Hibernate Getting Started 07 - Update, Delete Data

xiaoxiao2021-03-06  40

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 tag Unsaved-Value to determine what is required, what Is the existing value must be updated:

User.hbm.xml

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.

转载请注明原文地址:https://www.9cbs.com/read-68516.html

New Post(0)