CURD操作(hibernate)

工具类

public class HbnUtil {
    private static SessionFactory sessionFactory;

    public static Session getSession() {
        if(sessionFactory == null || sessionFactory.isClosed()) {
            sessionFactory = new Configuration().configure().buildSessionFactory();
        }
        return sessionFactory.getCurrentSession();
    }
}

CURD操作

save()
@Test
public void testSave() {
    Student student = new Student("李四",24,94.5);
    Session session = HbnUtil.getSession();
    try {
        session.beginTransaction();

        //save()
        session.save(student);

        session.getTransaction().commit();
    } catch (Exception e) {
        e.printStackTrace();
        session.getTransaction().rollback();
    }
}
persist():和save()一样
@Test
public void testPersist() {
    Student student = new Student("王五",25,95.5);
    Session session = HbnUtil.getSession();
    try {
        session.beginTransaction();

        //persist()
        session.persist(student);

        session.getTransaction().commit();
    } catch (Exception e) {
        e.printStackTrace();
        session.getTransaction().rollback();
    }
}
delete()
@Test
public void testDelete() {
    Student student = new Student();
    student.setId(1);

    Session session = HbnUtil.getSession();
    try {
        session.beginTransaction();

        //delete()
        session.delete(student);

        session.getTransaction().commit();
    } catch (Exception e) {
        e.printStackTrace();
        session.getTransaction().rollback();
    }
}
update()
@Test
public void testUpdate() {
    //设置要修改为的值
    Student student = new Student("王五",25,95.5);
    //设置要修改的对象的id
    student.setId(2);

    Session session = HbnUtil.getSession();
    try {
        session.beginTransaction();

        //update()
        session.update(student);

        session.getTransaction().commit();
    } catch (Exception e) {
        e.printStackTrace();
        session.getTransaction().rollback();
    }
}
saveOrUpdate()

通过参数对象是否具有id 值来判断是执行save()操作还是执行update()操作。若参数对象具有id,但该id 在DB 中不存在,则会抛出异常。

@Test
public void testsaveOrUpdate() {
    //设置要修改为的值
    Student student = new Student("赵六",26,96.5);
    //设置要修改的对象的id
    student.setId(3);

    Session session = HbnUtil.getSession();
    try {
        session.beginTransaction();

        //saveOrUpdate()
        session.saveOrUpdate(student);

        session.getTransaction().commit();
    } catch (Exception e) {
        e.printStackTrace();
        session.getTransaction().rollback();
    }
}
get()

在查询无果时,会给出null,但不会抛出异常

@Test
public void testGet() {

    Session session = HbnUtil.getSession();
    try {
        session.beginTransaction();

        //get()
        //Student student = session.get(Student.class,1);
        //没有id为90的student,其查询结果为null,没有异常抛出
        Student student = session.get(Student.class,90);
        System.out.println(student);
        session.getTransaction().commit();
    } catch (Exception e) {
        e.printStackTrace();
        session.getTransaction().rollback();
    }
load()

在查询无果时,会抛出异常

@Test
public void testLoad() {

    Session session = HbnUtil.getSession();
    try {
        session.beginTransaction();

        //load()
        //Student student = session.load(Student.class,1);
        //没有id为90的student,抛出异常
        Student student = session.load(Student.class,90);

        System.out.println(student);
        session.getTransaction().commit();
    } catch (Exception e) {
        e.printStackTrace();
        session.getTransaction().rollback();
    }
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值