`
rebecca
  • 浏览: 311609 次
  • 性别: Icon_minigender_2
  • 来自: 北京
社区版块
存档分类
最新评论

错误分析

阅读更多

  错误代码如下,

public RegisterRequest deleteOneById(long id) {

        RegisterRequest rr = null;

        Session session = HibernateUtil.getSessionFactory().openSession();

        Transaction transaction = null;
        try {
            transaction = session.beginTransaction();
            String hql = "from RegisterRequest as r" + "  where r.id = :id";
            Query query = session.createQuery(hql);
            query.setLong("id", id);
            rr = (RegisterRequest) query.setMaxResults(1).uniqueResult();

            session.delete(rr);

            transaction.commit();
        } catch (Exception e) {
            e.printStackTrace();
            if (transaction != null) {
                transaction.rollback();
            }

        } finally {
            session.close();

        }
        return rr;

    }

 

 

 public static void main(String[] args) {

        IRegisterRequestDAO rr = new RegisterRequestDAO();

        //  RegisterRequest reg = new RegisterRequest();
//
//        reg.setEmail("liyuanyuan0312@126.com");
//
//        reg.setPassword("lyy313152");
//
//        reg.setMinghao("wow");
//
//        reg.setRequestTime(new Date().getTime());
//
//        reg.setRequestIp("127.0.0.1");
//
//        rr.createOne(reg);


        // rr.deleteOneById(5L);

        System.out.print(rr.readOneById(1L).getEmail());

    }

 
 

 

对照如下正规写法,

 

 public boolean deleteOneById(long id) {
        boolean boo = false;
        User user = new User();

        user = this.readOneById(id);

        Session session = HibernateUtil.getSessionFactory().openSession();

        Transaction transaction = null;

        try {
            transaction = session.beginTransaction();

            session.delete(user);

            transaction.commit();

            boo = true;
        } catch (Exception e) {

            e.printStackTrace();

            if (transaction != null) {

                transaction.rollback();

                boo = false;
            }

        } finally {
            session.close();

        }
        return boo;
    }

 除了读取一个用户用User类型,其他都用boolean.例如, public User readOneById(long id)。

 

编译好的完整代码如下,并经过测试通过^^

/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package com.kakatao.www.dao.impl.hibernate;

import com.kakatao.www.dao.IUserDAO;
import com.kakatao.www.model.User;
import java.util.Iterator;
import java.util.List;
import org.hibernate.Query;
import org.hibernate.Session;
import org.hibernate.Transaction;

/**
 *
 * @author rebecca
 */
public class UserDAO implements IUserDAO {

    public boolean createOne(User user) {
        boolean boo = false;

        Session session = HibernateUtil.getSessionFactory().openSession();

        Transaction transaction = null;

        try {
            transaction = session.beginTransaction();
            session.save(user);
            transaction.commit();
            boo = true;


        } catch (Exception e) {
            e.printStackTrace();
            if (transaction != null) {
                transaction.rollback();
                boo = false;

            }

        } finally {
            session.close();
        }
        return boo;

    }

    public User readOneById(long id) {
        User user = null;

        Session session = HibernateUtil.getSessionFactory().openSession();

        Transaction transaction = null;
        try {
            transaction = session.beginTransaction();
            String hql = "from User as r" + "  where r.id = :id";
            Query query = session.createQuery(hql);
            query.setLong("id", id);
            user = (User) query.setMaxResults(1).uniqueResult();

            transaction.commit();
        } catch (Exception e) {
            e.printStackTrace();
            if (transaction != null) {
                transaction.rollback();
            }

        } finally {
            session.close();

        }
        return user;
    }

    public boolean deleteOneById(long id) {
        boolean boo = false;
        User user = new User();

        user = this.readOneById(id);

        Session session = HibernateUtil.getSessionFactory().openSession();

        Transaction transaction = null;

        try {
            transaction = session.beginTransaction();

            session.delete(user);

            transaction.commit();

            boo = true;
        } catch (Exception e) {

            e.printStackTrace();

            if (transaction != null) {

                transaction.rollback();

                boo = false;
            }

        } finally {
            session.close();

        }
        return boo;
    }

    public List searchInListByHql(String hql) {

        List list = null;

        Session session = HibernateUtil.getSessionFactory().openSession();

        Transaction transaction = null;
        try {
            transaction = session.beginTransaction();

            Query query = session.createQuery(hql);

            list = query.list();

            transaction.commit();
        } catch (Exception e) {
            e.printStackTrace();
            if (transaction != null) {
                transaction.rollback();
            }

        } finally {
            session.close();
        }
        return list;
    }

    public static void main(String[] args) {

        IUserDAO userdao = new UserDAO();

        User user = new User();

//        user.setEmail("liyuanyuan0312@126.com");
//
//        user.setPassword("lyy313152");
//
//        user.setMinghao("wow");
//
//        user.setQmd("心有多大,舞台就有多大");
//
//        user.setUsername("卡卡淘");
//
//        user.setPhoto("/l0098/photos/1.jpg");
//
//        user.setAddress("handan");
//
//        user.setBlogAddress("/kakatao/aticles/one01");
//
//        user.setAboutMe("自我介绍");
//
//        user.setPp("yes");
//
//        userdao.createOne(user);



        // userdao.deleteOneById(3L);

        List list = userdao.searchInListByHql("from User where address = 'handan'");


        for(int i = 0; i< list.size(); i ++)
        {
            System.out.println(((User)list.get(i)).getId());
        }



     //   System.out.print(userdao.readOneById(1L).getEmail());

    }
}
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics