前言
在进入Hibernate的学习之后,接触了CRUD操作这个概念,开始不知道,觉得没啥,后面又遇到了,百度了一下,CRUD是指在计算机处理是的增加(Create)、读取查询(Retrieve)、更新(Update)和删除(Delete)几个单词的首字母简写。主要被用在描述软件系统中数据库或者持久层的基本操作功能。
Create
public void testSave1(){
Session session = null;
Transaction tx = null;
User user =null;
try{
session = HibernateUtils.getSession();
tx= session.beginTransaction();
//Transien状态
user = new User();
user.setName("张三");
user.setPassword("123");
user.setCreateTime(new Date());
user.setExpireTime(new Date());
//persistent 状态
session.save(user);
user.setName("李四");
tx.commit();
}catch(Exception e) {
e.printStackTrace();
if (tx != null) {
tx.rollback();
}
}finally{
HibernateUtils.closeSession(session);
}
//detached状态
user.setName("王五");
try{
session = HibernateUtils.getSession();
session.beginTransaction();
//将detached状态的对象重新
session.update(user);
session.getTransaction().commit();
}catch(Exception e){
e.printStackTrace();
session.getTransaction().rollback();
}finally{
HibernateUtils.closeSession(session);
}
}
Retrieve
public void testLoad2(){
Session session = null;
try{
session = HibernateUtils.getSession();
session.beginTransaction();
//采用Load查询不存在的数据,
User user =(User)session.load(User.class,"5645456456");
System.out.println(user.getName());
session.getTransaction().commit();
}catch(Exception e){
e.printStackTrace();
session.getTransaction().rollback();
}finally{
HibernateUtils.closeSession(session);
}
}
Update
public void testUpdate1(){
Session session = null;
try{
session = HibernateUtils.getSession();
session.beginTransaction();
User user = (User)session.load(User.class,"402895c85987170301598717048a0001");
user.setName("周六");
session.update(user);
session.getTransaction().commit();
}catch(Exception e){
e.printStackTrace();
session.getTransaction().rollback();
}finally{
HibernateUtils.closeSession(session);
}
}
Delete
public void testDelete2(){
Session session = null;
try{
session = HibernateUtils.getSession();
session.beginTransaction();
//手动钩子Deteched对象
User user =new User();
user.setId("402895c85987443501598744369d0001");
session.delete(user);
session.getTransaction().commit();
}catch(Exception e){
e.printStackTrace();
session.getTransaction().rollback();
}finally{
HibernateUtils.closeSession(session);
}
}
在Hibernate中Session的一些常用方法:
Query query = session.createQuery(hql):利用hql查询语句查询;
Criteria critera = session.createCriteria(Class clazz);
Transaction tx = session.beginTransaction(); //开始事务;tx.commit()提交事务;
session.close();//关闭Session,此后被session管理的持久化对象变为脱管状态;
session.save(Object obj); //添加
session.update(Object obj); //更新
session.delete(Object obj); //删除
Object obj = session.get(Class clazz,Serialiazble id); //根据主键查找记录并返回;
Object obj = session.load(Class clazz,Serializable id); //和get方法效果一样,但是是懒加载,即在不使用他之前他不会返回对象;
总结
hibernate的CRUD操作主要是通过session这个持久化管理器来进行操作,还是比较简单的。