📄 objectdaoimpl.java
字号:
package org.HumResManSys.dao.impl;
import java.util.List;
import org.HumResManSys.dao.ObjectDAO;
import org.hibernate.Session;
import org.hibernate.Transaction;
import org.hibernate.Query;
import org.hibernate.Criteria;
import org.hibernate.criterion.Order;
import org.hibernate.criterion.Example;
import org.hibernate.criterion.MatchMode;
import org.hibernate.criterion.Restrictions;
import org.springframework.orm.hibernate3.support.HibernateDaoSupport;
public class ObjectDAOImpl extends HibernateDaoSupport implements ObjectDAO{
// private HibernateSessionFactory hibernateSessionFactory
// =new HibernateSessionFactory();
private org.hibernate.SessionFactory sessionFactory;
private final ThreadLocal<Session> threadLocal = new ThreadLocal<Session>();
private Session session;
private Object object;
public ObjectDAOImpl(){
}
public ObjectDAOImpl(Object object){
this.object=object;
}
// 查找所有对象
public List queryAllObjects(){
List list=null;
try{
//获得session
session=this.getCurrentSession();
//打开事务处理
Transaction transaction=session.beginTransaction();
//利用Criteria查询
Criteria criteria=session.createCriteria(object.getClass());
list=criteria.list();
transaction.commit();
}catch(Exception e){
e.printStackTrace();
System.out.print("DAO queryAllObject error\n");
}finally{
}
return list;
}
// 查找所有对象,返回时按ID排序
public List queryAllObjectsOrderByID(){
List list=null;
try{
session=this.getCurrentSession();
Transaction transaction=session.beginTransaction();
Criteria criteria=session.createCriteria(object.getClass());
//查询结果按ID排序
criteria.addOrder(Order.asc("id"));
list=criteria.list();
transaction.commit();
}catch(Exception e){
e.printStackTrace();
System.out.print("DAO queryAllObjectOrderByID error\n");
}finally{
}
return list;
}
// 查找所有对象,返回时按条件排序
public List queryAllObjectsOrderByCondition(String condition){
List list=null;
String HQL=null;
try{
session=this.getCurrentSession();
Transaction transaction=session.beginTransaction();
Criteria criteria=session.createCriteria(object.getClass());
if(!"".equals(condition)){
criteria.addOrder(Order.asc(condition));
}
list=criteria.list();
transaction.commit();
}catch(Exception e){
e.printStackTrace();
System.out.print("DAO queryAllObjectsOrderByCondition error\n");
}finally{
}
return list;
}
//按ID查找对象
public Object queryOneObjectByID(String id){
List list=null;
try{
session=this.getCurrentSession();
Transaction transaction=session.beginTransaction();
Criteria criteria=session.createCriteria(object.getClass());
if(!"".equals(id.trim())){
//添加查询条件
criteria.add(Restrictions.eq("id", id));
}
list=criteria.list();
transaction.commit();
}catch(Exception e){
e.printStackTrace();
System.out.print("DAO queryOneObjectByID error\n");
}finally{
}
return list.get(0);
}
//按条件查找一个对象
public Object queryOneObjectByCondition(String conditionName,String conditionValue){
try{
session=this.getCurrentSession();
Transaction transaction=session.beginTransaction();
//添加查询条件
Criteria criteria=session.createCriteria(object.getClass());
// if(!"".equals(conditionName.trim())&&!"".equals(conditionValue.trim())){
criteria.add(Restrictions.eq(conditionName, conditionValue));
// }
// System.out.println("from "+object.getClass().getName()+" where "+conditionName+" = '"+conditionValue+"'");
// Query query=session.createQuery("from "+object.getClass().getName()+" where "+conditionName+" = '"+conditionValue+"'");
object=criteria.list().get(0);
transaction.commit();
}catch(Exception e){
e.printStackTrace();
System.out.print("DAO queryObjectsByCondition error\n");
}finally{
}
return object;
}
//按属性查找对象
public List queryObjectsByCondition(String conditionName,String conditionValue){
List list=null;
String HQL=null;
try{
session=this.getCurrentSession();
Transaction transaction=session.beginTransaction();
//添加查询条件
Criteria criteria=session.createCriteria(object.getClass());
if(!"".equals(conditionName.trim())&&!"".equals(conditionValue.trim())){
criteria.add(Restrictions.eq(conditionName, conditionValue));
}
list=criteria.list();
transaction.commit();
}catch(Exception e){
e.printStackTrace();
System.out.print("DAO queryObjectsByCondition error\n");
}finally{
}
return list;
}
//按ID查找对象,返回List
public List queryOneObjectByIDReturnList(String id){
List list=null;
try{
session=this.getCurrentSession();
Transaction transaction=session.beginTransaction();
Criteria criteria=session.createCriteria(object.getClass());
if(!"".equals(id.trim())){
criteria.add(Restrictions.eq("id", id)).addOrder(Order.asc("id"));
}
list=criteria.list();
transaction.commit();
}catch(Exception e){
e.printStackTrace();
System.out.print("DAO queryOneObjectByIDReturnList error\n");
}finally{
}
return list;
}
//按实体类来查找对象
public List queryObjectsByEntity(Object object){
List list=null;
try{
session=this.getCurrentSession();
Transaction transaction=session.beginTransaction();
Example example=Example.create(object).excludeZeroes();
list=session.createCriteria(object.getClass()).add(example).list();
transaction.commit();
}catch(Exception e){
e.printStackTrace();
System.out.print("DAO queryOneObjectByEntity error\n");
}finally{
}
return list;
}
// 按实体类来查找对象,忽略各个属性的大小写,返回List
public List queryObjectsByEntityIgnoreCase(Object object){
List list=null;
try{
session=this.getCurrentSession();
Transaction transaction=session.beginTransaction();
Example example=Example.create(object).ignoreCase().excludeZeroes();
list=session.createCriteria(object.getClass()).add(example).list();
transaction.commit();
}catch(Exception e){
e.printStackTrace();
System.out.print("DAO queryOneObjectByEntityIgnoreCase error\n");
}finally{
}
return list;
}
// 按实体类来查找对象,各个属性模糊查找,返回List
public List queryObjectsByEntityEnableLike(Object object){
List list=null;
try{
session=this.getCurrentSession();
Transaction transaction=session.beginTransaction();
Example example=Example.create(object).excludeZeroes().ignoreCase().enableLike(MatchMode.ANYWHERE);
list=session.createCriteria(object.getClass()).add(example).list();
transaction.commit();
}catch(Exception e){
e.printStackTrace();
System.out.print("DAO queryOneObjectByEntityEnableLike error\n");
}finally{
}
return list;
}
//分页查询,查询结果按Id排序
public List queryObjectsByPageOrderById(int firstResult,int maxResults){
List list=null;
try{
session=this.getCurrentSession();
Transaction transaction=session.beginTransaction();
Criteria criteria=session.createCriteria(object.getClass());
list=criteria.setFirstResult(firstResult).setMaxResults(maxResults).list();
transaction.commit();
}catch(Exception e){
e.printStackTrace();
System.out.print("DAO queryObjectsByPageOrderById error\n");
}finally{
}
return list;
}
// 分页查询,查询结果按指定的条件排序
public List queryObjectsByPageOrderByCondition(String condition,int firstResult,int maxResults){
List list=null;
try{
session=this.getCurrentSession();
Transaction transaction=session.beginTransaction();
Criteria criteria=session.createCriteria(object.getClass()).addOrder(Order.asc(condition));
list=criteria.setFirstResult(firstResult).setMaxResults(maxResults).list();
transaction.commit();
}catch(Exception e){
e.printStackTrace();
System.out.print("DAO queryObjectsByPageOrderByCondition error\n");
}finally{
}
return list;
}
//添加对象
public boolean createObject(Object object){
try{
session=this.getCurrentSession();
Transaction transaction=session.beginTransaction();
session.save(object);
transaction.commit();
}catch(Exception e){
e.printStackTrace();
System.out.print("DAO createObject error\n");
return false;
}finally{
}
return true;
}
//修改信息对象
public boolean updateObject(Object object){
try{
session=this.getCurrentSession();
Transaction transaction=session.beginTransaction();
session.update(object);
transaction.commit();
}catch(Exception e){
e.printStackTrace();
System.out.print("DAO updateObject error\n");
return false;
}finally{
}
return true;
}
//按ID删除对象
public boolean deleteObjectByID(String id){
try{
session=this.getCurrentSession();
Transaction transaction=session.beginTransaction();
Criteria criteria=session.createCriteria(object.getClass()).add(Restrictions.eq("id", id));
session.delete(criteria.list().get(0));
transaction.commit();
}catch(Exception e){
e.printStackTrace();
System.out.print("DAO deleteObjectByID error\n");
return false;
}finally{
}
return true;
}
// 按条件删除对象
public boolean deleteObjectByCondition(String conditionName,String conditionValue){
try{
session=this.getCurrentSession();
Transaction transaction=session.beginTransaction();
Criteria criteria=session.createCriteria(object.getClass()).add(Restrictions.eq(conditionName, conditionValue));
List list=criteria.list();
for(int i=0;i<list.size();i++){
session.delete(list.get(i));
}
transaction.commit();
}catch(Exception e){
e.printStackTrace();
System.out.print("DAO deleteObjectByID error\n");
return false;
}finally{
}
return true;
}
//删除对象
public boolean deleteObject(Object object){
try{
session=this.getCurrentSession();
Transaction transaction=session.beginTransaction();
session.delete(object);
transaction.commit();
}catch(Exception e){
e.printStackTrace();
System.out.print("DAO deleteObject error\n");
return false;
}finally{
}
return true;
}
public Session getCurrentSession(){
session = (Session) threadLocal.get();
if(session==null||!session.isOpen()){
System.out.print("open hibernate session\n");
//this.getSession是由于继承了HibernateDaoSupport
session=this.getSession();
threadLocal.set(session);
}
return session;
}
public void closeSession(){
if(!session.isOpen()){
System.out.print("the session is already colsed\n");
}
session.close();
threadLocal.set(null);
System.out.print("close hibernate session\n");
}
public void setObject(Object object) {
this.object = object;
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -