package com.rlovep.crud;
import java.io.Serializable;
import java.util.List;
import javax.persistence.criteria.From;
import org.hibernate.Query;
import org.hibernate.Session;
import org.hibernate.Transaction;
import com.rlovep.Utils.HibernateUtil;
import com.rlovep.hello.Employee;
public class EmployeeDaoImpl implements IEmployeeDao{
@Override
public void save(Employee emp) {
Session session=null;
Transaction tx=null;
try {
session = HibernateUtil.getsession();
tx = session.beginTransaction();
session.save(emp);
} catch (Exception e) {
throw new RuntimeException(e);
}finally{
tx.commit();
session.close();
}
}
@Override
public void update(Employee emp) {
Session session=null;
Transaction tx=null;
try {
session = HibernateUtil.getsession();
tx = session.beginTransaction();
session.saveOrUpdate(emp);
} catch (Exception e) {
throw new RuntimeException(e);
}finally{
tx.commit();
session.close();
}
}
@Override
public Employee findById(Serializable id) {
Session session=null;
Transaction tx=null;
try {
session = HibernateUtil.getsession();
tx = session.beginTransaction();
//主键查询
return (Employee)session.get(Employee.class, id);
} catch (Exception e) {
throw new RuntimeException(e);
}finally{
tx.commit();
session.close();
}
}
@Override
public List<Employee> getAll() {
Session session=null;
Transaction tx=null;
try {
session = HibernateUtil.getsession();
tx = session.beginTransaction();
Query query = session.createQuery("From Employee");
return query.list();
} catch (Exception e) {
throw new RuntimeException(e);
}finally{
tx.commit();
session.close();
}
}
@Override
public List<Employee> getAll(String employeeName) {
Session session=null;
Transaction tx=null;
try {
session = HibernateUtil.getsession();
tx = session.beginTransaction();
Query query = session.createQuery("From Employee where empName=?");
//参数索引从0开始
query.setParameter(0, employeeName);
return query.list();
} catch (Exception e) {
throw new RuntimeException(e);
}finally{
tx.commit();
session.close();
}
}
@Override
public List<Employee> getAll(int index, int count) {
Session session=null;
Transaction tx=null;
try {
session = HibernateUtil.getsession();
tx = session.beginTransaction();
Query query = session.createQuery("From Employee ");
//设置分页参数
query.setFirstResult(index);//设置起始行
query.setMaxResults(count);//设置行数
return query.list();
} catch (Exception e) {
throw new RuntimeException(e);
}finally{
tx.commit();
session.close();
}
}
@Override
public void delete(Serializable id) {
Session session=null;
Transaction tx=null;
try {
session = HibernateUtil.getsession();
tx = session.beginTransaction();
Object object = session.get(Employee.class, id);
if(object!=null){
session.delete(object);
}
} catch (Exception e) {
throw new RuntimeException(e);
}finally{
tx.commit();
session.close();
}
}
}