package com.mmc.common.dao;
import java.io.Serializable;
import java.lang.reflect.ParameterizedType;
import java.util.List;
import java.util.Map;
import org.hibernate.Query;
import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.Transaction;
public class BaseDaoImpl<T,PK extends Serializable> implements IBaseDao<T,PK>{
private Class<T> persistentClass;
public Class<T> getPersistentClass() {
return persistentClass;
}
public void setPersistentClass(Class<T> persistentClass) {
this.persistentClass = persistentClass;
}
@SuppressWarnings("unchecked")
public BaseDaoImpl() {
this.persistentClass=(Class<T>) ((ParameterizedType)getClass().getGenericSuperclass()).getActualTypeArguments()[0];
}
private SessionFactory sessionFactory;
public SessionFactory getSessionFactory() {
return sessionFactory;
}
public void setSessionFactory(SessionFactory sessionFactory) {
this.sessionFactory = sessionFactory;
}
@Override
public void save(T entity) {
this.getSessionFactory().getCurrentSession().save(entity);
}
/*======================inser========================*/
@Override
public void insert(String hql){
this.getSessionFactory().openSession().createSQLQuery(hql).executeUpdate();
}
/*======================inser========================*/
@Override
public void saveOrUpdate(T entity) {
this.getSessionFactory().getCurrentSession().saveOrUpdate(entity);
}
@Override
public void delete(PK id) {
this.getSessionFactory().getCurrentSession().delete(this.getById(id));
}
@Override
public void delete(T entity) {
this.getSessionFactory().getCurrentSession().delete(entity);
}
@Override
public void deleteByProperty(String propertyName, Object value) {
String queryString="delete from " + this.getPersistentClass().getName() +
" as model where model." + propertyName + "=?";
Query query=this.getSessionFactory().getCurrentSession().createQuery(queryString);
query.setParameter(0, value);
query.executeUpdate();
}
@Override
public void update(T entity) {
this.getSessionFactory().getCurrentSession().update(entity);
}
/*======================修改=================================*/
@Override
public void up(String hql){
this.getSessionFactory().openSession().createSQLQuery(hql).executeUpdate();
//Transaction tx = this.getSessionFactory().openSession().beginTransaction().
}
/*======================修改==================================*/
@Override
public T getById(PK id) {
return (T) this.getSessionFactory().getCurrentSession().get(getPersistentClass(), id);
}
@Override
public int countAll() {
String queryString="select count(*) from " + this.getPersistentClass().getName();
Query query=this.getSessionFactory().getCurrentSession().createQuery(queryString);
List<T> list=query.list();
Long result=(Long) list.get(0);
return result.intValue();
}
@Override
public int countByProperty(String propertyName, Object value) {
String[] propertyNames = new String[]{propertyName};
Object[] values = new Object[]{value};
return this.countByProperties(propertyNames, values);
}
@Override
public int countByProperties(String[] propertyNames, Object[] values) {
StringBuffer strBuffer = new StringBuffer();
strBuffer.append("select count(*) from "
+ getPersistentClass().getName());
strBuffer.append(" as model where ");
for (int i = 0; i < propertyNames.length; i++)
{
if (i != 0)
strBuffer.append(" and");
strBuffer.append(" model.");
strBuffer.append(propertyNames[i]);
strBuffer.append("=");
strBuffer.append("? ");
}
String queryString = strBuffer.toString();
Query query = this.getSessionFactory().getCurrentSession().createQuery(queryString);
for (int i = 0; i < values.length; i++)
{
query.setParameter(i, values[i]);
}
List list = query.list();
Long result = (Long) list.get(0);
return result.intValue();
}
public T get(String hql) {
Query q= this.sessionFactory.getCurrentSession().createQuery(hql);
List<T> l=q.list();
if(l!=null && l.size()>0){
return l.get(0);
}
return null;
}
public T get(String hql, Object[] params) {
Query q= this.sessionFactory.openSession().createQuery(hql);
if(params!=null && params.length>0){
for(int i=0;i<params.length;i++){
q.setParameter(i, params[i]);
}
}
List<T> l=q.list();
if(l!=null && l.size()>0){
return l.get(0);
}
return null;
}
public T get(String hql, Map<String, Object> params) {
Query q= this.sessionFactory.openSession().createQuery(hql);
if(params != null && !params.isEmpty()){
for(String key:params.keySet()){
q.setParameter(key, params.get(key));
}
}
List<T> l=q.list();
if(l!=null && l.size()>0){
return l.get(0);
}
return null;
}
@SuppressWarnings("unchecked")
@Override
public List<T> getAll() {
String queryString="from " + this.getPersistentClass().getName();
Query query = this.getSessionFactory().getCurrentSession().createQuery(queryString);
return query.list();
}
@Override
public List<T> getAll(int page, int pageSize) {
String queryString="from " + getPersistentClass().getName();
Query query=this.getSessionFactory().getCurrentSession().createQuery(queryString);
int firstResult=(page-1) * pageSize;
query.setFirstResult(firstResult);
query.setMaxResults(pageSize);
return query.list();
}
@Override
public List<T> getAllSequence(int page, int pageSize,boolean isSequence) {
String queryString="from " + getPersistentClass().getName()+" order by id";
//select * from user ORDER BY uid desc;
if(isSequence){
queryString+=" asc";
}else{
queryString+=" desc";
}
Query query=this.getSessionFactory().getCurrentSession().createQuery(queryString);
int firstResult=(page-1) * pageSize;
query.setFirstResult(firstResult);
query.setMaxResults(pageSize);
return query.list();
}
/*//查询用户表里的采购员
@Override
public List<T> getAllBuyer() {
String queryString="from User u where u.role.roleId=4";
Query query=this.getSessionFactory().getCurrentSession().createQuery(queryString);
return query.list();
}
*/
@Override
public List<T> findByProperty(String propertyName, Object value) {
String queryString="from " + getPersistentClass().getName()+" as model where model." + propertyName + "=?";
Query query=this.getSessionFactory().getCurrentSession().createQuery(queryString);
query.setParameter(0, value);
return query.list();
}
@Override
public T getByProperty(String propertyName, Object value) {
String queryString="from " + getPersistentClass().getName()+" as model where model." + propertyName + "=?";
Query query=this.getSessionFactory().getCurrentSession().createQuery(queryString);
query.setParameter(0, value);
List<T> list=query.list();
if(list.size()>0) return list.get(0);
else return null;
}
@Override
public List<T> getByProperty(String propertyName, Object value, int page,
int pageSize) {
return this.getByProperties(new String[]
{
propertyName
}, new Object[]
{
value
}, page, pageSize);
}
@Override
public List<T> getByPropertyOrder(String propertyName, Object value,int page, int pageSize, String propertyOrder, boolean isSequence) {
//String queryString="from " + getPersistentClass().getName()+" as model where model." + propertyName + "=? order by model."+propertyOrder;
String queryString="from " + getPersistentClass
没有合适的资源?快使用搜索试试~ 我知道了~
采购及仓库信息管理系统
共2039个文件
png:870个
gif:473个
java:124个
5星 · 超过95%的资源 需积分: 16 24 下载量 151 浏览量
2015-11-25
21:12:19
上传
评论 4
收藏 33.58MB ZIP 举报
温馨提示
采购及仓库信息管理系统,主要是spring+hibernate+struts2完成的,数据库是mysql数据,本系统界面简介,操作简单,很适合初学者下载学习。
资源推荐
资源详情
资源评论
收起资源包目录
采购及仓库信息管理系统 (2039个子文件)
BaseDaoImpl.class 14KB
InserStoreRecordAction.class 12KB
OutStoreRecordAction.class 12KB
UserAction.class 10KB
RoleAction.class 9KB
MaterialrecordAction.class 9KB
PermissionsAction.class 9KB
BuyplanmenuAction.class 8KB
SupplierBillAction.class 8KB
WarehouseAction.class 8KB
GoodsAction.class 7KB
DailytableAction.class 7KB
DepertmentAction.class 7KB
MonthwaretableAction.class 6KB
ResourcesAction.class 6KB
SupplierAction.class 5KB
InvoceAction.class 5KB
PhysicalAccountAction.class 5KB
Buyplanmenu.class 4KB
Supplierbill.class 4KB
User.class 4KB
Outstorerecord.class 3KB
IBaseDao.class 3KB
LoginAction.class 3KB
Insertrecord.class 3KB
PageUtil.class 3KB
PermissionsServiceImpl.class 3KB
DepertmentServiceImpl.class 3KB
UserServiceImpl.class 3KB
OutStoreRecordServiceImpl.class 3KB
WarehouseServiceImpl.class 3KB
Encrypt.class 3KB
RoleServiceImpl.class 3KB
Supplier.class 3KB
IInserStoreRecordServiceImpl.class 3KB
SupplierBillServiceImpl.class 3KB
BuyplanmenuServiceImpl.class 2KB
MD5.class 2KB
ResourcesServiceImpl.class 2KB
Warehouse.class 2KB
MaterialrecordServiceImpl.class 2KB
Role.class 2KB
SupplierServiceImpl.class 2KB
Goods.class 2KB
GoodsServiceImpl.class 2KB
MonthwaretableDaoImpl.class 2KB
InvoceServiceImpl.class 2KB
Monthwaretable.class 2KB
DailytableServiceImpl.class 2KB
Resources.class 2KB
Permissions.class 2KB
LoginInterceptor.class 2KB
Materialrecord.class 2KB
MonthwaretableServiceImpl.class 2KB
Dailytable.class 2KB
Invoce.class 2KB
LoginServiceImpl.class 2KB
PhysicalAccount.class 1KB
PhysicalAccountServiceImpl.class 1KB
Type.class 1KB
Depertment.class 1KB
BaseAction.class 1KB
Material.class 1KB
UserDaoImpl.class 1KB
MaterialServiceImpl.class 918B
IInserStoreRecordService.class 893B
IOutStoreRecordService.class 889B
TypeServiceImpl.class 886B
IPermissionsService.class 864B
IDepertmentService.class 855B
IWarehouseService.class 838B
IUserService.class 838B
IRoleService.class 820B
IBuyplanmenuService.class 811B
ISupplierBillService.class 805B
IResourcesService.class 790B
IMaterialrecordService.class 746B
ISupplierService.class 692B
IGoodsService.class 640B
IInvoceService.class 636B
IInserStoreRecordDaoImpl.class 608B
OutStoreRecordDaoImpl.class 587B
IMonthwaretableService.class 570B
SupplierBillDaoImpl.class 565B
PhysicalAccountDaoImpl.class 553B
MaterialrecordDaoImpl.class 547B
DepertmentDaoImpl.class 543B
WarehouseDaoImpl.class 532B
PermissionsDaoImpl.class 529B
IDailytableService.class 527B
BuyplanmenuDaoImpl.class 524B
DailytableDaoImpl.class 523B
SupplierDaoImpl.class 521B
ResourcesDaoImpl.class 517B
MaterialDaoImpl.class 511B
GoodsDaoImpl.class 503B
InvoceDaoImpl.class 499B
TypeDaoImpl.class 497B
LoginDaoImpl.class 492B
RoleDaoImpl.class 487B
共 2039 条
- 1
- 2
- 3
- 4
- 5
- 6
- 21
资源评论
- zhang_xiaohua2017-10-30系统出错了, 我没有下载,提示我说已经下载了
冷血_刺客
- 粉丝: 1
- 资源: 1
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- Python实现2048小游戏源码
- 基于spark的心脏病信息大数据分析源代码+数据(高分期末大作业).zip
- 基于spark的心脏病信息大数据分析源代码+数据(高分毕业设计).zip
- 《大数据原理》LSH算法实现
- 基于 Canvas 开发的 2d JavaScript框架库, 它可以轻松的实现桌面应用和移动应用中的图形交互交互效果
- 285699177712363PDF电子版.zip
- 基于JavaScript的批量图片裁剪插件
- 基于YOLOv8的蔬菜识别源代码+项目说明+数据集(高分项目).zip
- 基于风控模型的银行客户信用风险评估系统源码+pdf说明+数据集(高分项目).zip
- cn-excelserver2023-x64.exe
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功