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 {

       private static SessionFactory sessionFactory;

       private HibernateUtil() {

       }

       static {

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

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

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

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

              sessionFactory = cfg.buildSessionFactory();

       }

       public static SessionFactory getSessionFactory() {

              return sessionFactory;

       }

       public static Session getSession() {

              return sessionFactory.openSession();

       }    

//删除

       public static 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();

                     }

              }

       }

       //更新

       public static 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();

                     }

              }

       }

       //添加

       public static 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();

                     }

              }

       }

       // 查找

       public static Object get(Class clazz, int id) {

              // 查询不需要事务

              Session session = null;

              try {

                     // 获取到session对象

                     session = HibernateUtil.getSession();

                     Object obj = 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());//第一个使用会连接数据库,就不会再抛异常了

                      */

                     return obj;

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

                     if (session != null) {

                            session.close();

                     }

              }

       }

}

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值