博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
hibernate的crud操作
阅读量:6589 次
发布时间:2019-06-24

本文共 3304 字,大约阅读时间需要 11 分钟。

package com.yuzd.hibernate;import java.util.Date;import junit.framework.TestCase;import org.hibernate.Session;import com.yuzd.util.HbmUtils;public class SessionTest extends TestCase {        public void addUser(){        Session session = null;        try {            session = HbmUtils.getSession();            session.beginTransaction();            User user = new User();            user.setName("aaa");            user.setPassword("aaa");            user.setCreateTime(new Date());            user.setExpireTime(new Date());            session.save(user);            session.getTransaction().commit();        } catch (Exception e) {            e.printStackTrace();            session.getTransaction().rollback();        }finally{            HbmUtils.closeSession(session);        }    }        public void getUser(){        Session session =null;        try {            session = HbmUtils.getSession();            session.beginTransaction();            //get方法是通过主键id来查找的,hibernate中get方法建议在事物中使用            //如果get方法查询不出结果则返回null            User user = (User) session.get(User.class, "402881e941c503b30141c503b7440001");            System.out.println(user.getName());            user.setName("李四");            session.save(user);            session.getTransaction().commit();        } catch (Exception e) {            e.printStackTrace();            session.getTransaction().rollback();                    }finally{            HbmUtils.closeSession(session);        }    }        public void loadUser(){        Session session = null;        try {            session = HbmUtils.getSession();            session.beginTransaction();            //只有在真正使用的时候才会发出sql指令,lazy延迟加载            //如果数据库中没有对应的数据的话就会抛出异常            User user = (User) session.load(User.class, "402881e941c5a1630141c5a482330001");            System.out.println(user.getName());//这句的时候才会真正的去数据库查询            session.getTransaction().commit();        } catch (Exception e) {            e.printStackTrace();            session.getTransaction().rollback();        }finally{            HbmUtils.closeSession(session);        }    }        public void updateUser(){        Session session = null;        try {            session = HbmUtils.getSession();            session.beginTransaction();            User user = new User();            user.setId("402881e941c5a1630141c5a482330001");            user.setName("王五");            //这样改的话会把其他的属性设置成null,一般采用的方法是先load然后更改属性值            session.update(user);            session.getTransaction().commit();        } catch (Exception e) {            e.printStackTrace();            session.getTransaction().rollback();        }finally{            HbmUtils.closeSession(session);        }    }        public void deleteUser(){        Session session = null;        try {            session = HbmUtils.getSession();            session.beginTransaction();            //先load然后再delete            User user = (User) session.load(User.class, "402881e941c5a1630141c5a482330001");            session.delete(user);            session.getTransaction().commit();        } catch (Exception e) {            e.printStackTrace();            session.getTransaction().rollback();        }finally{            HbmUtils.closeSession(session);        }    }}

 

转载于:https://www.cnblogs.com/yuzhengdong/p/3375039.html

你可能感兴趣的文章
How to iterate HashMap using JSTL forEach loop
查看>>
day_44_Django
查看>>
JMX整理
查看>>
【问题排查】fastjson线上排坑记
查看>>
从Java视角理解CPU上下文切换(Context Switch)
查看>>
Java:JSON解析工具-org.json
查看>>
和老师们合作,注定了是打工的(转)
查看>>
前端是Sencha Touch+ Cordova(转)
查看>>
bat执行java程序的脚本解析
查看>>
Chome 浏览器,您的连接不是私密连接
查看>>
在MySQL中,一条查询语句是如何执行的
查看>>
Oeasy系列教程
查看>>
5.字典
查看>>
java获取当前执行文件的路径
查看>>
ValueAnimator 使用注意事项
查看>>
iOS 图片加载
查看>>
mysql 聚集函数 count 使用详解
查看>>
SCREEN MODULE 逻辑控制
查看>>
netty之管道处理流程
查看>>
生活真理
查看>>