Hibernate增删改查(通过id查询)

Hibernate增删改查(通过id查询)

package com.hbsi.hibernate.utils;

import org.hibernate.Session;

import org.hibernate.SessionFactory;

import org.hibernate.Transaction;

import org.hibernate.cfg.Configuration;

public final class HibernateUtil {

privatestatic SessionFactory sessionFactory;

privateHibernateUtil() {

}

static{

//使用hibernate完成将对象存入表中

Configurationcfg = new Configuration();// 设置配置对象

cfg.configure();//用来完成hibernate的初始化----读取配置文件,里面的参数表示配置文件的位置,如果配置文件名字与路径均为现在这样,参数省略

//SessionFactory对象----相当于DriverManager驱动器管理器

sessionFactory= cfg.buildSessionFactory();

}

publicstatic SessionFactory getSessionFactory() {

returnsessionFactory;

}

publicstatic Session getSession() {

returnsessionFactory.openSession();

}

//删除

publicstatic void delete(Object obj) {

Session session = null;

Transaction tx = null;

try {

// 获取到session对象

session =HibernateUtil.getSession();

tx =session.beginTransaction();// 开启事务并且返回该事务对象

session.delete(obj);// 此时处于瞬时状态

tx.commit();

} finally {// 保证资源得到释放

if (session != null) {

session.close();

}

}

}

//更新

publicstatic void update(Object obj) {

Session session = null;

Transaction tx = null;

try {

// 获取到session对象

session =HibernateUtil.getSession();

tx = session.beginTransaction();//开启事务并且返回该事务对象

session.update(obj);

tx.commit();

} finally {// 保证资源得到释放

if (session != null) {

session.close();

}

}

}

//添加

publicstatic void add(Object obj) {

Session session = null;

Transaction tx = null;

try {

// 获取到session对象

session =HibernateUtil.getSession();

tx =session.beginTransaction();// 开启事务并且返回该事务对象

session.save(obj);

tx.commit();

} finally {// 保证资源得到释放

if (session != null) {

session.close();

}

}

}

//查找

publicstatic Object get(Class clazz, int id) {

//查询不需要事务

Sessionsession = null;

try{

//获取到session对象

session= HibernateUtil.getSession();

Objectobj = session.get(clazz, id);

/*

* Class clazz=User.class;//user类型所对应的class对象 User user=(User)

* session.get(clazz, id);

*/// 第一个参数是一个class类型的参数,第二个参数是id

/*

* User user=(User) session.load(clazz,

* id);//懒加载,这句话没有访问数据库,返回的是一个代理对象,代理对象永远不为空

* System.out.println(user.

* getId()+"----"+user.getName());//第一个使用会连接数据库,就不会再抛异常了

*/

returnobj;

}finally {// 保证资源得到释放

if(session != null) {

session.close();

}

}

}

}

update()方法和saveOrupdate()方法可以把对象从脱管状态变成了持久状态

经验分享 程序员 微信小程序 职场和发展