错误分析
? 错误代码如下,
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()); }}