`
xxp3369
  • 浏览: 151336 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

ssh_training_itemmgr 04

阅读更多
DataDict.java


package com.bjsxt.drp.business.itemmgr.model;

public class DataDict {

	private String id;
	
	private String name;

	public String getId() {
		return id;
	}

	public void setId(String id) {
		this.id = id;
	}

	public String getName() {
		return name;
	}

	public void setName(String name) {
		this.name = name;
	}

}



DataDict.hbm.xml


<?xml version="1.0"?>
<!DOCTYPE hibernate-mapping PUBLIC 
	"-//Hibernate/Hibernate Mapping DTD 3.0//EN"
	"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
<hibernate-mapping package="com.bjsxt.drp.business.itemmgr.model">
	<class name="DataDict" table="t_data_dict">
		<id name="id">
			<generator class="assigned"/>
		</id>
		<discriminator column="category" type="string"/>
		<property name="name" not-null="true"/>
		<subclass name="ItemCategory" discriminator-value="item_category"/>
		<subclass name="ItemUnit" discriminator-value="item_unit"/>
	</class>
</hibernate-mapping>


Item.java

package com.bjsxt.drp.business.itemmgr.model;

/**
 * 物料实体类
 * @author Administrator
 *
 */
public class Item {
	
    //物料代码
	private String itemNo;
	
	//物料名称
	private String itemName;
	
	//规格
	private String spec;
	
	//型号
	private String pattern;
	
	//类型
	private ItemCategory category;
	
	//单位
	private ItemUnit unit;

	public ItemCategory getCategory() {
		return category;
	}

	public void setCategory(ItemCategory category) {
		this.category = category;
	}

	public String getItemName() {
		return itemName;
	}

	public void setItemName(String itemName) {
		this.itemName = itemName;
	}

	public String getItemNo() {
		return itemNo;
	}

	public void setItemNo(String itemNo) {
		this.itemNo = itemNo;
	}

	public String getPattern() {
		return pattern;
	}

	public void setPattern(String pattern) {
		this.pattern = pattern;
	}

	public String getSpec() {
		return spec;
	}

	public void setSpec(String spec) {
		this.spec = spec;
	}

	public ItemUnit getUnit() {
		return unit;
	}

	public void setUnit(ItemUnit unit) {
		this.unit = unit;
	}
}


ItemCategory.java


package com.bjsxt.drp.business.itemmgr.model;

/**
 * 物料类别
 * @author Administrator
 *
 */
public class ItemCategory extends DataDict {
}


ItemUnit.java

package com.bjsxt.drp.business.itemmgr.model;

/**
 * 计量单位类
 * @author Administrator
 *
 */
public class ItemUnit extends DataDict {
	
}



Item.hbm.xml

<?xml version="1.0"?>
<!DOCTYPE hibernate-mapping PUBLIC 
	"-//Hibernate/Hibernate Mapping DTD 3.0//EN"
	"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
<hibernate-mapping package="com.bjsxt.drp.business.itemmgr.model">
	<class name="Item" table="t_items">
		<id name="itemNo">
			<generator class="assigned"/>
		</id>
		<property name="itemName" not-null="true"/>
		<property name="spec"/>
		<property name="pattern"/>
		<many-to-one name="category"/>
		<many-to-one name="unit"/>
	</class>
</hibernate-mapping>



ItemManager.java


package com.bjsxt.drp.business.itemmgr.manager;

import java.util.List;

import org.hibernate.Query;
import org.hibernate.Session;
import org.springframework.orm.hibernate3.support.HibernateDaoSupport;

import com.bjsxt.drp.business.itemmgr.model.Item;
import com.bjsxt.drp.business.util.AppException;
import com.bjsxt.drp.business.util.HibernateUtils;
import com.bjsxt.drp.business.util.PageModel;

/**
 * 物料管理类,采用单例模式实现
 * @author Administrator
 *
 */
public interface ItemManager {

	/**
	 * 添加物料
	 * @param item item对象
	 */
	public void addItem(Item item);

	/**
	 * 修改物料
	 * @param item item对象
	 */
	public void modifyItem(Item item);

	/**
	 * 删除物料
	 * @param itemNoList 物料代码集合
	 */
	public void deleteItem(String[] itemNoList);

	/**
	 * 根据条件查询物料信息
	 * @param queryStr 查询条件
	 * @return item对象的集合
	 */
	public PageModel findAllItem(int pageNo, int pageSize, String queryStr);
	
	/**
	 * 根据Id查询物料
	 * @param item item对象
	 */
	public Item findItemById(String itemNo);
}


package com.bjsxt.drp.business.itemmgr.manager;

import java.sql.SQLException;
import java.util.ArrayList;
import java.util.List;

import org.hibernate.HibernateException;
import org.hibernate.Session;
import org.springframework.orm.hibernate3.HibernateCallback;
import org.springframework.orm.hibernate3.support.HibernateDaoSupport;

import com.bjsxt.drp.business.itemmgr.model.Item;
import com.bjsxt.drp.business.util.AppException;
import com.bjsxt.drp.business.util.PageModel;

/**
 * 物料管理类,采用单例模式实现
 * @author Administrator
 *
 */
public class ItemManagerImpl extends HibernateDaoSupport implements ItemManager {

	/**
	 * 添加物料
	 * @param item item对象
	 */
	public void addItem(Item item) {
		try {
			this.getHibernateTemplate().save(item);
		}catch(Exception e) {
			//记录日志,log4j等......
			e.printStackTrace();
			throw new AppException("drp.basedata.item.error.add"); 
		}
	}

	/**
	 * 修改物料
	 * @param item item对象
	 */
	public void modifyItem(Item item) {
		try {
			this.getHibernateTemplate().update(item);
		}catch(Exception e) {
			//记录日志,log4j等......
			e.printStackTrace();
			throw new AppException("drp.database.item.error.modify", item.getItemNo());
		}
	}

	/**
	 * 删除物料
	 * @param itemNoList 物料代码集合
	 */
	public void deleteItem(String[] itemNoList) {
		try {
			for (int i=0; i<itemNoList.length; i++) {
				Item item = (Item)this.getHibernateTemplate().load(Item.class, itemNoList[i]);
				this.getHibernateTemplate().delete(item);
			}
		}catch(Exception e) {
			//记录日志,log4j等......
			e.printStackTrace();
			throw new AppException("drp.basedata.item.error.delete");
		}		
	}

	/**
	 * 根据条件查询物料信息
	 * @param queryStr 查询条件
	 * @return item对象的集合
	 */
	public PageModel findAllItem(final int pageNo, final int pageSize, final String queryStr) {
		PageModel pageModel = null;
		List itemList = new ArrayList();
		try {
			if (queryStr != null && queryStr.trim().length() != 0) {
				itemList = this.getHibernateTemplate().executeFind(new HibernateCallback() {

					public Object doInHibernate(Session session)
							throws HibernateException, SQLException {
						return session.createQuery("from Item a where a.itemNo like ? or a.itemName like ? order by a.itemNo")
										.setParameter(0, queryStr + "%")
										.setParameter(1, queryStr + "%")
										.setFirstResult((pageNo - 1) * pageSize)
										.setMaxResults(pageSize)
										.list();
					}
				});
			}else {
				itemList = this.getHibernateTemplate().executeFind(new HibernateCallback() {

					public Object doInHibernate(Session session)
							throws HibernateException, SQLException {
						return session.createQuery("select a from Item a join fetch a.category b join fetch a.unit c order by a.itemNo")
						.setFirstResult((pageNo - 1) * pageSize)
						.setMaxResults(pageSize)
						.list();
					}
				});
			}
			
			pageModel = new PageModel();
			pageModel.setPageNo(pageNo);
			pageModel.setPageSize(pageSize);
			pageModel.setList(itemList);
			pageModel.setTotalRecords(getTotalRecords(queryStr));
		}catch(Exception e) {
			//记录日志,log4j等......
			e.printStackTrace();
			throw new AppException("drp.database.item.error.findallitem");
		}	
		return pageModel;

	}
	
	/**
	 * 查询记录数
	 * 
	 * @param session
	 * @param queryStr
	 * @return
	 */
	private int getTotalRecords(String queryStr) {
		Long totalRecords = 0L;
		if (queryStr != null && queryStr.trim().length() != 0) {
			//采用模板取得总记录数据
			totalRecords = (Long)this.getHibernateTemplate().find("select count(*) from Item a where a.itemNo like ? or a.itemName like ?", 
											 new Object[]{queryStr + "%", queryStr + "%"}).get(0);
		}else {
			//采用session取得总记录数
			totalRecords = (Long)this.getSession().createQuery("select count(*) from Item a").uniqueResult();
		}
		return totalRecords.intValue();
	}
	
	/**
	 * 根据Id查询物料
	 * @param item item对象
	 */
	public Item findItemById(String itemNo) {
		Item item = null;
		try {
			item = (Item)this.getHibernateTemplate().load(Item.class, itemNo);
		}catch(Exception e) {
			//记录日志,log4j等......
			e.printStackTrace();
			throw new AppException("drp.basedata.item.error.delete");
		}	
		return item;
	}
}
分享到:
评论

相关推荐

    ssh_training_itemmgr.zip

    这个"ssh_training_itemmgr.zip"压缩包很可能是提供了一个SSH框架整合的实际项目示例,帮助开发者理解和学习如何在实际应用中运用这些技术。 **Struts** 是一个基于MVC设计模式的Java Web框架,主要用于控制应用...

    SSH_Test.rar_C ssh_C#ssh_C++ ssh_C++ SSH_libssh2库

    SSH_Test.rar_C ssh_C#ssh_C++ ssh_C++ SSH_libssh2库是一个针对C、C#和C++编程语言的SSH实现示例,特别提到了libssh2库的使用。在Visual Studio 2010环境下,这个压缩包提供了通过SSH进行文件上传的功能。接下来,...

    ssh_do_all_list.sh

    ssh_do all_list执行命令,需要修改脚本“node_list”和集群操作命令即可,执行样例如下:ssh ssh_do_all_list.sh "cat /etc/hosts

    ssh.rar_qt ssh_qtssh_qt中调用ssh_qt使用ssh_ssh qt

    SSH(Secure Shell)是一种网络协议,用于在不安全的网络上提供安全的远程登录和其他服务。在QT(一个跨平台的C++图形用户界面应用程序开发框架)中集成SSH功能,可以实现与远程服务器的安全交互,比如执行Linux命令...

    ssh_test.rar_ssh_ssh_test

    标题中的"ssh_test.rar_ssh_ssh_test"可能是指一个与SSH(Secure Shell)相关的项目或教程,其中包含了"ssh_test"的实例代码。SSH是一种网络协议,用于安全地远程登录到服务器,执行命令和传输数据。它在IT行业中...

    SSH.rar_myeclipse ssh_ssh_ssh myeclipse_ssh2_ssh2 Myeclipse

    标题"SSH.rar_myeclipse ssh_ssh_ssh myeclipse_ssh2_ssh2 Myeclipse"表明这是一个关于SSH配置和MyEclipse集成的资源包,可能包含了SSH框架在MyEclipse中的配置教程,以及SSH2(更安全的SSH版本)的相关资料。...

    SSH_province_sql.rar_SSH_province_sql_ajax_dwr_ssh_ssh ajax

    SSH_province_sql.rar_SSH_province_sql_ajax_dwr_ssh_ssh_ajax这个标题暗示了这是一个与SSH框架(Struts2、Spring、Hibernate)结合DWR(Direct Web Remoting)实现的项目,主要涉及到了省市县三级联动的数据处理,...

    固定资产管理系统SSH_JSP_MySql(源码+数据库sql+lun文+视频齐全).zip

    固定资产管理系统SSH_JSP_MySql(源码+数据库sql+lun文+视频齐全)固定资产管理系统SSH_JSP_MySql(源码+数据库sql+lun文+视频齐全)固定资产管理系统SSH_JSP_MySql(源码+数据库sql+lun文+视频齐全)固定资产管理系统SSH_...

    ssh_known_hosts, cookbook ssh_known_hosts的开发库.zip

    ssh_known_hosts, cookbook ssh_known_hosts的开发库 ssh_known_hosts-cookbook Chef向添加主机和密钥的/etc/ssh/ssh_known_hosts 文件公开资源和默认配方,已知主机的public 键的全局文件。使用键类型和ohai数据...

    ssh.rar_java ssh_ssh_ssh 源码

    标签"java_ssh ssh ssh_源码"进一步确认了这是关于Java语言实现SSH功能的源代码,强调了SSH的多次提及,可能意味着源码中包含了多个SSH相关模块或者示例。 在压缩包子文件的文件名称列表中,"www.pudn.com.txt"可能...

    4.7javaEE_SSH_MySqL基于SSH的医院在线挂号(源码+数据库sql+lun文+视频齐全).zip

    4.7javaEE_SSH_MySqL基于SSH的医院在线挂号(源码+数据库sql+lun文+视频齐全);javaEE_SSH_MySqL基于SSH的医院在线挂号(源码+数据库sql+lun文+视频齐全);javaEE_SSH_MySqL基于SSH的医院在线挂号(源码+数据库sql+lun...

    javaEE_SSH_MVC_MySql动漫论坛的设计与实现(源码+数据库sql+lun文+视频齐全).zip

    javaEE_SSH_MVC_MySql动漫论坛的设计与实现(源码+数据库sql+lun文+视频齐全)javaEE_SSH_MVC_MySql动漫论坛的设计与实现(源码+数据库sql+lun文+视频齐全)javaEE_SSH_MVC_MySql动漫论坛的设计与实现(源码+数据库sql+...

    javaEE_SSH_oracle土地档案管理系统(源码+数据库sql+lun文+视频齐全).zip

    javaEE_SSH_oracle土地档案管理系统(源码+数据库sql+lun文+视频齐全)javaEE_SSH_oracle土地档案管理系统(源码+数据库sql+lun文+视频齐全)javaEE_SSH_oracle土地档案管理系统(源码+数据库sql+lun文+视频齐全)javaEE_...

    JuiceSSH_2.1.4.apk

    JuiceSSH_2.1.4.apk

    ssh_2.rar_SSH MyEclipse_myeclipse ssh_ssh_ssh 源码

    SSH(Struts、Spring、Hibernate)是Java开发中常见的三个框架的组合,广泛应用于企业级应用的开发。这个名为"ssh_2.rar"的压缩包文件包含了一个基于SSH的项目源码,适合在MyEclipse集成开发环境中运行和学习。 **...

    javaEE_SSH_SQLServer商品供应管理系统(源码+数据库sql+lun文+视频齐全).zip

    javaEE_SSH_SQLServer商品供应管理系统(源码+数据库sql+lun文+视频齐全)javaEE_SSH_SQLServer商品供应管理系统(源码+数据库sql+lun文+视频齐全)javaEE_SSH_SQLServer商品供应管理系统(源码+数据库sql+lun文+视频齐全...

    javaEE_SSH_mysql百货中心供应链管理系统(源码+数据库sql+lun文+视频齐全).zip

    javaEE_SSH_mysql百货中心供应链管理系统(源码+数据库sql+lun文+视频齐全)javaEE_SSH_mysql百货中心供应链管理系统(源码+数据库sql+lun文+视频齐全)javaEE_SSH_mysql百货中心供应链管理系统(源码+数据库sql+lun文+...

    淘宝发货__ssh__网上商城(ssh_eshop)__sqlserver.zip

    "淘宝发货__ssh__网上商城(ssh_eshop)__sqlserver.zip" 这个标题表明我们正在处理一个与网上商城系统相关的压缩文件。"ssh"通常指的是Struts2、Spring和Hibernate这三个Java开发框架的组合,它们在Web应用开发中广泛...

    Update_SSH_1.0.21.tar.gz

    在IT行业中,SSH(Secure Shell)是一种用于在网络之间安全地执行命令、传输数据以及管理远程系统的网络协议。OpenSSH是SSH协议的开源实现,而OpenSSL则是一个强大的安全套接层(SSL)和传输层安全(TLS)协议库。...

Global site tag (gtag.js) - Google Analytics