当前位置:Gxlcms > 数据库问题 > 编写hibernate 操作数据库的dao层简单代码

编写hibernate 操作数据库的dao层简单代码

时间:2021-07-01 10:21:17 帮助过:20人阅读

boolean add(User user)//添加数据 public boolean deleteByName(String userName)//通过name来删除 public boolean deleteById(int id)//通过id删除 public boolean update(int id,User user)//将根据id得到的对象更新为user对象的属性值 public List<User> findAll()//查询所有条目

 

 

==============================================

一、添加数据方法代码:

    public boolean add(User user){
        Session session=sessionFactory.openSession();
        Transaction transaction=null;
        try {
            transaction = (Transaction) session.beginTransaction();
            session.save(user);
            transaction.commit();
            return true;
        } catch (RuntimeException e) {
            transaction.rollback();
            System.out.println("添加失败");
            return false;
        }finally{
            session.close();
        }
    }

 

1、获得session会话

2、开始事务

3、保存对象

4、提交事务

5、若执行正确返回true

6、若为异常则回滚事务,返回false

7、最后关闭会话

================================================

二、通过name字段删除条目

    public boolean deleteByName(String userName){
        Session session = sessionFactory.openSession();
        Transaction transaction=null;
        
            try {
                transaction = session.beginTransaction();
                String hql="from User where name=‘"+userName+"‘";
                User user=(User) session.createQuery(hql).uniqueResult();
                 session.delete(user);
                 transaction.commit();
                 return true;
            } catch (HibernateException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
                return false;
            }finally{
                session.close();
            }
}

 

1、传入name字符

2、写hql语句,注意User是类名,因为hql是面向对象而不是面向数据库

3、通过hql语句取得唯一的对象user,若有多个对象则会抛出异常

4、删除对象

5、提交事务

==================================================================

三、通过id删除条目

    public boolean deleteById(int id){
        Session session = sessionFactory.openSession();
        Transaction transaction=null;
        
            try {
                transaction = session.beginTransaction();
                User user=(User) session.get(User.class, id);
                 session.delete(user);
                 transaction.commit();
                 return true;
            } catch (HibernateException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
                return false;
            }finally{
                session.close();
            }
    }

 

1、传入参数id

2、开启事务

3、根据id得到对象

4、删除对象

5、提交事务

===================================================

四、根据id更新条目

    public boolean update(int id,User user){
        Session session = sessionFactory.openSession();
        Transaction transaction=null;
        try {
            transaction=session.beginTransaction();
            User iUser=(User) session.get(User.class, id);
            iUser.setName(user.getName());
            iUser.setNumber(user.getNumber());
            iUser.setPassword(user.getPassword());
            iUser.setPhone(user.getPhone());
            session.update(iUser);
            transaction.commit();
            return true;
        } catch (Exception e) {
            // TODO: handle exception
            System.out.println("更新失败");
            transaction.rollback();
//            throw e;
            return false;
        }finally{
            session.close();
        }
    }

 

1、根据id得到item中的iuser对象

2、将user参数的属性传入iuser

3、将iuser更新

4、提交事务

=================================================================

五、查询所有条目

    public List<User> findAll(){
        Session session = sessionFactory.openSession();
        Transaction transaction=null;
        try {
            transaction= session.beginTransaction();
             List<User> list= session.createCriteria(User.class).list();
//       List<User> list=session.createQuery("from User").list();//hql方式 transaction.commit();
return list; } catch (Exception e) { // TODO: handle exception System.out.println("获取失败"); transaction.rollback(); return null; }finally{ session.close(); } }

 

1、开启事务

2、两种查询方式获得User的list

3、返回list

 

==============================================

==============================================

注意:

1、hql是面向对象的语句

2、一定要在事务中操作数据库

3、catch里面产生异常一定要回滚操作

4、要提交事务,否则不生效

5、一定要关闭会话资源

 

编写hibernate 操作数据库的dao层简单代码

标签:sys   操作   cat   from   exce   hql   blog   hibernate   dal   

人气教程排行