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