package com.njupt.ohms.hibernate.dao;
import java.io.Serializable;
import java.util.Iterator;
import java.util.List;
import org.hibernate.HibernateException;
import org.hibernate.Query;
import org.hibernate.Session;
//import com.njupt.ohms.exception.DAOException;
import com.njupt.ohms.util.HibernateUtil;
import com.njupt.ohms.util.PageBean;
public abstract class BaseDao {
/*
* 分页
*/
public PageBean getObjects(Class clazz, PageBean page) {
try {
Session session = HibernateUtil.currentSession();
HibernateUtil.beginTransaction();
String queryString = page.getQueryString();
Query query = null;
Object values[] = page.getValues();
List list;
if (!page.isNeedSplitPage()) {
query = session.createQuery(queryString);
if (queryString.indexOf('?') > 0 && values != null) {
for (int i = 0; i < values.length; i++)
query.setParameter(i, values[i]);
}
list = query.list();
HibernateUtil.commitTransaction();
HibernateUtil.closeSession();
page.setContent(list);
return page;
}
String queryStr = "";
if (page.getRecordsPerPage() > 0) {
if (queryString.toLowerCase().indexOf("order") != -1) {
queryStr = "select count(*) "
+ queryString.substring(0, queryString
.toLowerCase().indexOf("order"));
} else {
queryStr = "select count(*) " + queryString;
}
System.out.println("quert==="+ queryStr );
query = session.createQuery(queryStr);
if (queryStr.indexOf('?') > 0 && values != null) {
for (int i = 0; i < values.length; i++){
System.out.println("quert==="+ values[i] );
query.setParameter(i, values[i]);
}
}
Integer totalRecord = (Integer) query.list().get(0);
HibernateUtil.commitTransaction();
page.setTotalRecords(totalRecord);
int totalPage = 1;
totalPage = totalRecord % page.getRecordsPerPage() != 0 ? totalRecord/ page.getRecordsPerPage() + 1: totalRecord / page.getRecordsPerPage();
page.setTotalPage(totalPage);
if (page.getCurrentPage() > totalPage)
page.setCurrentPage(totalPage);
} else {
page.setTotalPage(1);
page.setCurrentPage(1);
}
query = session.createQuery(queryString);
if (queryString.indexOf('?') > 0 && values != null) {
for (int i = 0; i < values.length; i++)
query.setParameter(i, values[i]);
}
if (page.getRecordsPerPage() > 0) {
query.setFirstResult((page.getCurrentPage() - 1)
* page.getRecordsPerPage());
query.setMaxResults(page.getRecordsPerPage());
}
list = query.list();
if (page.getRecordsPerPage() < 0)
page.setTotalRecords(list.size());
HibernateUtil.commitTransaction();
HibernateUtil.closeSession();
page.setContent(list);
return page;
} catch (HibernateException e) {
//log.fatal(e);
}
return null;
}
/* public void update(Class clazz, Serializable id) {
}
public void deleteObject(Class clazz, Serializable id) {
}
public Object getObject(Class clazz, Serializable id) {
return null;
}*/
//protected final Log log = LogFactory.getLog(getClass());
/**
* 根据主键获取一个持久化对象,不确定对象是否存在时,请使用getByID
*
* @param c
* @param id
* @return
*/
public Object loadByID(Class c,Serializable id) throws Exception{
try {
Session s = HibernateUtil.currentSession();
HibernateUtil.beginTransaction();
Object o = s.load(c, id);
// BeanCodingConvert.ObjectConvert(o, BeanCodingConvert.ISO2GBK);
HibernateUtil.commitTransaction();
HibernateUtil.closeSession();
return o;
}
catch (Exception e) {
System.out.println(e.getMessage());
//throw new DAOException(e);
throw e;
}
}
/**
* 根据实体名,主键值获取一个持久化对象,不确定对象是否存在时,请使用getByID
*
* @param entityName
* 实体名,默认为表名
* @param id
* @return
* @throws Exception
*/
public Object loadByID(String entityName,Serializable id) throws Exception{
try {
Session s = HibernateUtil.currentSession();
HibernateUtil.beginTransaction();
Object o = s.load(entityName, id);
// BeanCodingConvert.ObjectConvert(o, BeanCodingConvert.ISO2GBK);
HibernateUtil.commitTransaction();
HibernateUtil.closeSession();
return o;
}
catch (Exception e) {
System.out.println(e.getMessage());
//throw new DAOException(e);
throw e;
}
}
/**
* 获取该类型的所有对象
*
* @param c
* @return
*/
public List getAll(Class c) throws Exception{
return null;
}
/**
* 获取该类型的所有对象
*
* @param entityName
* @return
*/
public List getAll(String entityName) throws Exception{
String hql="from "+entityName+"";
return query(hql);
//return null;
}
/**
* 根据主键获取一个持久化对象
*
* @param c
* @param id
* @return
*/
public Object getByID(Class c,Serializable id) throws Exception{
try {
Session s = HibernateUtil.currentSession();
HibernateUtil.beginTransaction();
Object o = s.get(c, id);
HibernateUtil.commitTransaction();
HibernateUtil.closeSession();
return o;
}
catch (Exception e) {
//throw new DAOException(e);
throw e;
}
//return null;
}
/**
* 根据实体名,主键获取一个持久化对象
*
* @param entityName
* @param id
* @return
* @throws Exception
*/
public Object getByID(String entityName,Serializable id) throws Exception{
try {
Session s = HibernateUtil.currentSession();
HibernateUtil.beginTransaction();
Object o = s.get(entityName, id);
HibernateUtil.commitTransaction();
HibernateUtil.closeSession();
return o;
}
catch (Exception e) {
System.out.println(e.getMessage());
//throw new DAOException(e);
throw e;
}
//return null;
}
/**
* 保存实体
*
* @param o
* @return
*/
public boolean save(Object o) throws Exception{
try {
Session s = HibernateUtil.currentSession();
HibernateUtil.beginTransaction();
s.save(o);
s.flush();
HibernateUtil.commitTransaction();
HibernateUtil.closeSession();
return true;
}
catch (Exception e) {
System.out.println(e.getMessage());
//throw new DAOException(e);
//throw e;
//......写入日志
return false;
}
}
/**
* 根据实体名保存实体,用于一个po对应数据库多张表
*
* @param entityName
* @param o
* @return
*/
public void save(String entityName,Object o) throws Exception{
try {
Session s = HibernateUtil.currentSession();
HibernateUtil.beginTransaction();
s.save(entityName,o);
HibernateUtil.commitTransaction();
HibernateUtil.closeSession();
}
catch (Exception e) {
System.out.println(e.getMessage());
//throw new DAOException(e);
throw e;
}
}
/**
* 保存或者更新实体
*
* @param o
* @return
*/
public void saveOrUpdate(Object o) throws Exception{
try {
Session s = HibernateUtil.currentSession();
HibernateUtil.beginTransaction();
s.saveOrUpdate(o);
HibernateUtil.commitTransaction();
HibernateUtil.closeSession();
}
catch (Exception e) {
System.out.println(e.getMessage());
//throw new DAOException(e);
throw e;
}
}
/**
* 根据实体名保存或者更新实体,用于一个po对应数据库多张表
*
* @param entityName
* @param o
* @return
*/
public void saveOrUpdate(String entityName,Object o) throws Exception{
try {
Session s = H
没有合适的资源?快使用搜索试试~ 我知道了~
资源推荐
资源详情
资源评论
收起资源包目录
医院挂号收费药房管理系统 (458个子文件)
BaseDao.class 8KB
PresccriptionDAO.class 6KB
MedicineDAO.class 6KB
PatientDAO.class 6KB
DoctorDAO.class 6KB
ImportdetailDAO.class 6KB
ReceiptDAO.class 6KB
UsersDAO.class 5KB
SickroomInfoDAO.class 5KB
DepartmentDAO.class 5KB
ItemDAO.class 5KB
ProviderDAO.class 5KB
PayitemsDAO.class 5KB
RoomTypeDAO.class 5KB
recipeAddAction.class 5KB
Presccription.class 4KB
Presccription.class 4KB
RecipeForm.class 4KB
ProductModifyForm.class 4KB
Medicine.class 4KB
Medicine.class 4KB
MedicineModifyAction.class 3KB
StoreinInsertAction.class 3KB
ProductInsertForm.class 3KB
MedicineInsertAction.class 3KB
DoctorForm.class 3KB
ImportdetailDAO.class 3KB
RegistrationAction.class 3KB
StoreinModifyAction.class 3KB
RegistStayAction.class 3KB
ReceiptInsertAction.class 3KB
DoctorModifyAction.class 3KB
HibernateDAOFactory.class 3KB
Patient.class 3KB
Patient.class 3KB
StoreinForm.class 3KB
RegistStayForm.class 3KB
HibernateUtil.class 3KB
Doctor.class 3KB
Doctor.class 3KB
MedicineSearchbyNameActionAction.class 3KB
AddSickroomAction.class 3KB
Receipt.class 3KB
SickroomSearchAction.class 3KB
StoreinSelectAction.class 2KB
Receipt.class 2KB
FindPatientbyIdAction.class 2KB
HibernateSessionFactory.class 2KB
MedicineDeleteAction.class 2KB
ColumnsequenceDAO.class 2KB
LoginAction.class 2KB
DAOFactory.class 2KB
MedicineSelectAction.class 2KB
MedicineDAO.class 2KB
ReceiptAction.class 2KB
Importdetail.class 2KB
SickroomInfoDAO.class 2KB
FindDocByIdAction.class 2KB
Importdetail.class 2KB
StoreinInitAction.class 2KB
ProviderInsertAction.class 2KB
MedicinesearchAction.class 2KB
MedicineSearchAction.class 2KB
PageBean.class 2KB
SickroomInfo.class 2KB
SickroomInfo.class 2KB
PatientSearchActionAction.class 2KB
StoreinSearchAction.class 2KB
MedicineInitAction.class 2KB
ProviderSearchAction.class 2KB
Columnsequence.class 2KB
Payitems.class 2KB
User.class 2KB
Payitems.class 2KB
Item.class 2KB
Item.class 2KB
UserDAO.class 2KB
ColumnsequenceId.class 2KB
Users.class 1KB
RoomType.class 1KB
Provider.class 1KB
RoomType.class 1KB
Department.class 1KB
Provider.class 1KB
Department.class 1KB
RegistrationForm.class 1KB
ProviderInsertForm.class 1KB
FindPatientbyIdForm.class 1KB
LoadHiberaneFactoryContext.class 1KB
PatientDAO.class 1KB
DAOConfig.class 1KB
LoginForm.class 963B
SickroomSearchForm.class 829B
AddSickroomForm.class 793B
BaseHibernateDAO.class 565B
MedicineSearchbyNameForm.class 384B
MedicinesearchForm.class 366B
PatientSearchForm.class 363B
PrescriptionDAO.class 348B
DepartmentDAO.class 342B
共 458 条
- 1
- 2
- 3
- 4
- 5
资源评论
laohehehe
- 粉丝: 32
- 资源: 71
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功