利用hibernate怎么对数据库进行增删改查操作

  介绍

本篇文章给大家分享的是有关利用hibernate怎么对数据库进行增删改查操作,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。

删除用户表中个一条数据,是需要更具用户表的主键id值来删除的。首先根据id值向数据库中查询出来对应的对象。可以采用两种方式一是会话的得到方法,一个是会话的负载方法。

会话的得到方法:调用这个方法会返回一个对象对象,然后我们对其强制转换.Useruser=session.get(用户(用户)。类,“402881 e5441c035e01441c0360510003”);,当我们传递id值在数据中查找没有相应的结果时,得到的方法会返回一个null值。

,,,区别:得到方法加载的时候会立刻发出sql语句去查询,而负载方法在执行的时候没有立刻的发出sql去查询,生成一个代理用户,没有生成真正的用户。当我们真正的去用这个用户的时候才会加载真正的User.Load()支持延迟加载,而得到()不支持延迟加载. get加载的对象不存在时返回的是零对象,而负载()加载对象不存在时会抛出ObjectNotFoundException异常。

,,,会话的负载方法:同样是调用这个方法返回一个对象对象,再进行强制转换。

然后我们通过得到或负载加载上来对应用户表id的对象,再调用会话的删除方法删除该对象同时删除表中的一条记录,代码如下所示。

,,,,,,,,,

 publicvoid testDel1 ()
  {
  Sessionsession=零;
  
  试一试
  {
  会话=HibernateUtils.getSession ();//开启事务。
  session.beginTransaction ();//采用负载查询不存在的数据,hibernate会抛出对象没有发现异常
  Useruser=(用户)session.load (User.class,“402881 e5441c035e01441c0360510003");//删除表中的记录。//删除,建议用此种方式删除,先加载再删除。
  session.delete(用户);//提交事务。把内存的改变提交到数据库上。
  .commit session.getTransaction () ();
  
  }捕捉(异常e) {
  e.printStackTrace ();
  .rollback session.getTransaction () ();
  最后}{
  HibernateUtils.closeSession(会话);
  }
  
  }
,

代码如下所示。

//测试方法以测试开头。测试德尔方法。返回存在的加载的。   publicvoid testDel2 ()   {   Sessionsession=零;      试一试   {   会话=HibernateUtils.getSession ();//开启事务。   session.beginTransaction ();//手动构造的分离对象。   用户用户=新用户();   user.setId (“402881 e4441b3d1c01441b3f5dfe0001");   session.delete(用户);//提交事务。把内存的改变提交到数据库上。   .commit session.getTransaction () ();      }捕捉(异常e) {   e.printStackTrace ();   .rollback session.getTransaction () ();   最后}{   HibernateUtils.closeSession(会话);   }      }

一般查询,代码如下所示。

//查询方法。   publicvoid testQuery1 ()   {   Sessionsession=零;   试一试   {   会话=HibernateUtils.getSession ();      session.beginTransaction ();//参数是一个字符串,是HQL的查询语句。注意此时的的UserU为大写,为对象的,而不是表的。   Queryquery=session.createQuery(“从User");//使方用列表法。   userList=query.list列表();//迭代器去迭代。   (迭代器iter=userList.iterator (); iter.hasNext ();)   {   Useruser=(用户)iter.next ();   System.out.println (“id=? user.getId () +“name=? user.getName ());   }      .commit session.getTransaction () ();   }捕捉(异常e) {   e.printStackTrace ();   .rollback session.getTransaction () ();   最后}{   HibernateUtils.closeSession(会话);   }   }

,分页查询,代码如下所示。

//分页查询,从什么地方查,查几个;   publicvoid testQuery2 ()   {   Sessionsession=零;   试一试   {   会话=HibernateUtils.getSession ();   session.beginTransaction ();//参数是一个字符串,是HQL的查询语句。注意此时的的UserU为大写,为对象的,而不是表的。   Queryquery=session.createQuery(“从User");//从第一个开始查起。可以设置从第几个查起。   query.setFirstResult (0);//最大条数为两个   query.setMaxResults (2);//使方用列表法。   userList=query.list列表();//迭代器去迭代。   (迭代器iter=userList.iterator (); iter.hasNext ();)   {   Useruser=(用户)iter.next ();   System.out.println (“id=? user.getId () +“name=? user.getName ());   }   .commit session.getTransaction () ();   }捕捉(异常e) {   e.printStackTrace ();   .rollback session.getTransaction () ();   最后}{   HibernateUtils.closeSession(会话);   }   }

利用hibernate怎么对数据库进行增删改查操作