`

OFBIZ--对数据库的操作(转)

 
阅读更多
/**
	 * 功能:取得demo信息列表
	 * @param request
	 * @param response
	 * @return
	 */	
	public static  String getDemoList(HttpServletRequest request,HttpServletResponse response)
	{
		//取得数据源对象
		//GenericDelegator delegator = (GenericDelegator) request.getAttribute("default");
		GenericDelegator delegator = GenericDelegator.getGenericDelegator("default");
		List returnList=null;
		try 
		{
			//取得所有数据
			returnList=delegator.findAll("Demo");//select * from demo
			delegator.findByAnd("Demo", UtilMisc.toMap("demoId", "1","demoName","a"));
			//select * from demo where domo_id='1' and demo_name='a'
			delegator.findByOr("Demo", UtilMisc.toMap("demoId", "1","demoName","a"));
			delegator.findByPrimaryKey("Demo",UtilMisc.toMap("demoId","1"));
		} 
		catch (GenericEntityException ex) {
			Debug.log(ex);
			request.setAttribute("myException", ex);
			String strExInfo = ExceptionUtil.getStackTraceInfo(ex,"查询失败!");
			request.setAttribute(SiteDefs.ERROR_MESSAGE, strExInfo);
			return "error";
		}
		//将数据放入缓存中,在页面可以拿到
		request.setAttribute("returnList", returnList);
		//根据返回值确定在那一个页面展示,起页面导向的作用
		return "success";
	}
	
	
	public static  String getDemoYanShi(HttpServletRequest request,HttpServletResponse response)
	{
		//取得数据源对象
		//GenericDelegator delegator = (GenericDelegator) request.getAttribute("default");
		GenericDelegator delegator = GenericDelegator.getGenericDelegator("default");
		List returnList=null;
		try 
		{
			//取得所有数据
			returnList=delegator.findAll("Demo");
			delegator.findByAnd("Demo", UtilMisc.toMap("demoId", "1","demoName","a"));
			delegator.findByOr("Demo", UtilMisc.toMap("demoId", "1","demoName","a"));
		} 
		catch (GenericEntityException ex) {
			Debug.log(ex);
			request.setAttribute("myException", ex);
			String strExInfo = ExceptionUtil.getStackTraceInfo(ex,"查询失败!");
			request.setAttribute(SiteDefs.ERROR_MESSAGE, strExInfo);
			return "error";
		}
		//将数据放入缓存中,在页面可以拿到
		request.setAttribute("returnList", returnList);
		//根据返回值确定在那一个页面展示,起页面导向的作用
		String type="suce";
		if(type=="shixisheng")
			return "shixisheng";
		else
		    return "success";
	}
	
	/**
	 * 功能:取得demo信息列表 (服务方式)
	 * 参数:ctx,context
	 * 返回值:Map
	 */	
	public static Map getDemoServiceList(DispatchContext ctx, Map context){
		
		//获取实体引擎数据连接
		GenericDelegator delegator = ctx.getDelegator();
		//当前用户登录信息
		GenericValue userLogin = (GenericValue) context.get("userLogin");
		//LocalDispatcher对象
		LocalDispatcher dispatcher = (LocalDispatcher)ctx.getDispatcher();
		//Map map = dispatcher.runSync("getDemoServiceList", paramMap);
		String areaId = (String)context.get("areaId");
		
		//定义返回值集合
		Map result = new HashMap();
		//定义返回参数
		List returnList = null;
		//定义排序List
		List orderByList = new ArrayList();
		//String areaId = userLogin.getString("areaId");
		orderByList.add("demoId desc");
		EntityCondition condition;
		List constraints = new LinkedList();
		
		try
		{
			//select demoId,demoname,sex from demo where id='' or   name='' order by demoId desc
			EntityExpr eexprAreaId = new EntityExpr("demoId", EntityOperator.NOT_EQUAL, null);//demo_id!=null
			EntityExpr eexprName = new EntityExpr("demoName", EntityOperator.EQUALS, "aaa");//demo_name='aaa'
			constraints.add(eexprAreaId);
			constraints.add(eexprName);

			condition = new EntityConditionList(constraints, EntityOperator.AND);//demo_id!=null and demo_name='aaa'
			
			Collection fieldsToSelect = new ArrayList();
			fieldsToSelect.add("demoId");
			fieldsToSelect.add("demoName");
			returnList = delegator.findByCondition("Demo", condition, fieldsToSelect, orderByList);
			/*
			EntityExpr type1 = new EntityExpr("type1", EntityOperator.NOT_EQUAL, "1");type1!=1
	        EntityExpr type2 = new EntityExpr("type2", EntityOperator.EQUALS, "2");type2=2
			
	        EntityExpr type4 = new EntityExpr(type1,EntityOperator.AND,type2);type1!=1 and  type2=2
			
	        EntityExpr type3 = new EntityExpr("type3", EntityOperator.EQUALS, "3"); type3=3
	        constraints.add(type3);
	        constraints.add(type4);
	        condition = new  EntityConditionList(constraints, EntityOperator.OR); 
	        
	        type3=3 or (type1!=1 and  type2=2)
	        
	        (type1="1" and type2="2") or (type3="3")
			 */
		} catch (Exception ex)
		{
			Debug.log(ex);
			result.put("myException", ex);
			String strExInfo = ExceptionUtil.getStackTraceInfo(ex, "查询失败!");
			result.put(SiteDefs.ERROR_MESSAGE, strExInfo);
			result.put(ModelService.RESPONSE_MESSAGE, ModelService.RESPOND_ERROR);
			return result;
		}
		result.put("returnList", returnList);
		result.put("success", "success");
		result.put(ModelService.RESPONSE_MESSAGE, ModelService.RESPOND_SUCCESS);
		return result;
	}
	
	/**
	 * 功能:根据角色取得demo信息列表
	 * @param request
	 * @param response
	 * @return
	 */	
	public static  String getDemoByRoleList(HttpServletRequest request,HttpServletResponse response)
	{
		//取得数据源对象
		GenericDelegator delegator = (GenericDelegator) request.getAttribute("delegator");
		//当前用户登录信息
		GenericValue userLogin = (GenericValue)request.getSession().getAttribute(SiteDefs.USER_LOGIN);
		// 权限对象
		Security security = (Security) request.getAttribute(" security ");
		// LocalDispatcher对象
		LocalDispatcher dispatcher = (LocalDispatcher) request.getAttribute("dispatcher");

		List returnList=null;
		try 
		{
			if(security.hasRole("accessory_admin", userLogin)){
				//取得所有数据
				//调用服务方式:(服务名,传入参数)				
				Map paramMap = new HashMap();
				Map map = dispatcher.runSync("getDemoServiceList", paramMap);
				returnList =  (List)map.get("returnList");
			}else{
				//其他的处理
			}
		} 
		catch (GenericServiceException ex) {
			Debug.log(ex);
			request.setAttribute("myException", ex);
			String strExInfo = ExceptionUtil.getStackTraceInfo(ex,"查询失败!");
			request.setAttribute(SiteDefs.ERROR_MESSAGE, strExInfo);
			return "error";
		}
		//将数据放入缓存中,在页面可以拿到
		request.setAttribute("returnList", returnList);
		//根据返回值确定在那一个页面展示,起页面导向的作用
		return "success";
	}
	
	/**
	 * 功能:新增Demo信息
	 * @param request
	 * @param response
	 * @return
	 */
	public static  String addSaveDemo(HttpServletRequest request, HttpServletResponse response)
	{
		GenericDelegator delegator = (GenericDelegator) request.getAttribute("delegator");
		//request.getParameter(arg0)
		Map context = UtilHttp.getParameterMap(request);
		String demoIdStr="";
		GenericValue demoGV=null;
		
		try 
		{
			demoIdStr = delegator.getNextSeqId("Demo").toString();
			
			demoGV = delegator.makeValue("Demo",UtilMisc.toMap("demoId",demoIdStr));
			/* 要求表单的id名称和数据字段的名称一致,才能使用下面的写法
			 * indicatrixGV.setNonPKFields(context);
			 * */
			//新增记录
			demoGV.setNonPKFields(context); //多条数据一起放入
			//一条数据一条的放入
			//demoGV.setString("demoName", request.getParameter("demoName"));
			//demoGV.setString("sex", request.getParameter("sex"));
			demoGV.create();
		} catch (GenericEntityException ex) {
			Debug.log(ex);
			request.setAttribute("myException", ex);
			String strExInfo = ExceptionUtil.getStackTraceInfo(ex,"新增失败!");
			request.setAttribute(SiteDefs.ERROR_MESSAGE, strExInfo);
			return "error";
		}
		return "success";
	}
	
	
	/**
	 * 功能:修改Demo信息
	 * @param request
	 * @param response
	 * @return
	 */
	public static  String updateDemo(HttpServletRequest request,HttpServletResponse response)
	{
		GenericDelegator delegator = (GenericDelegator) request.getAttribute("delegator");
		Security  security  = (Security)request.getAttribute("security");
		GenericValue userLogin = (GenericValue)request.getSession().getAttribute(SiteDefs.USER_LOGIN);

		Map context = UtilHttp.getParameterMap(request);
		//表单参数
		String demoId=request.getParameter("demoId");
		String demoName=request.getParameter("demoName");
		GenericValue demoGV=null;
		
		try 
		{	
			demoGV = delegator.findByPrimaryKey("Demo", UtilMisc.toMap("demoId", demoId));
			
			demoGV.setNonPKFields(context);
			demoGV.store();
			
		} catch (GenericEntityException ex) {
			Debug.log(ex);
			request.setAttribute("myException", ex);
			String strExInfo = ExceptionUtil.getStackTraceInfo(ex,"新增失败!");
			request.setAttribute(SiteDefs.ERROR_MESSAGE, strExInfo);
			return "error";
		}
		return "success";
	}
	
	/**
	 * 功能:删除Demo信息
	 * @param request
	 * @param response
	 * @return
	 */
	public static  String delDemo(HttpServletRequest request,HttpServletResponse response)
	{
		GenericDelegator delegator = (GenericDelegator) request.getAttribute("delegator");
		//可以删除多条数据
		String demoIdsStr=request.getParameter("demoIds").toString();
		String[] demoIdArray=demoIdsStr.split(",");
		String demoIdStr = "";
		try 
		{
			for (int i = 0; i < demoIdArray.length; i++) 
			{
				demoIdStr=demoIdArray[i].toString();
				//删除数据
				delegator.removeByAnd("Demo", UtilMisc.toMap("demoId",demoIdStr));
			}
			
		} 
		catch (GenericEntityException ex) {
			Debug.log(ex);
			request.setAttribute("myException", ex);
			String strExInfo = ExceptionUtil.getStackTraceInfo(ex,"删除失败!");
			request.setAttribute(SiteDefs.ERROR_MESSAGE, strExInfo);
			return "error";
		}
		return "success";
	}
	
	public static String hello(String str){
		return str;
	}

 

分享到:
评论

相关推荐

    谈ofbiz学习-中文

    在Ofbiz中,Event Handler、Service和Entity Engine是其核心组件,它们分别负责事件处理、业务逻辑和服务数据操作。这些组件的设计高度灵活,允许开发者通过XML配置文件来定义和管理业务流程,极大地减少了编写Java...

    Ofbiz-minilang标签示例

    - `use-transaction`: 开启一个新的数据库事务,确保一系列操作作为一个单元执行。如果其中任何一步失败,整个事务将被回滚。 - `check-permission`: 检查当前用户是否具有执行特定操作的权限。如果没有,可以阻止...

    Ofbiz 数据库全模型

    总之,"Ofbiz数据库全模型"是一个宝贵的资源,对于学习、开发和维护Ofbiz应用的人来说,它提供了对系统数据结构的全面了解,有助于提升工作效率并确保项目的稳定性和扩展性。无论是初学者还是经验丰富的Ofbiz开发者...

    ofbiz-birt.pdf

    此外,BIRT还提供了一个独立运行的Rich Client Platform (RCP) Designer应用程序,该应用程序安装在客户端机器上,并远程连接到OFBiz数据库。 #### 教程范围 本教程将详细介绍如何在Windows机器上设置BIRT RCP ...

    ofbiz--A Beginners Development Guide--Part 2

    Ofbiz的服务机制允许开发者定义业务逻辑,这些服务可以是数据库操作、外部系统交互或者其他复杂的业务流程。在`component-load.xml`中,你可以找到服务的定义,包括服务的输入输出参数、执行模式(同步或异步)、...

    OFBiz-技术文档

    **OFBiz 技术文档** OFBiz,全称为Open For Business Project,是一个...通过深入研究这些文档,开发者可以掌握OFBiz的基本操作,理解其设计原则,从而在实际项目中高效地运用OFBiz来构建高效、稳定的企业信息系统。

    ofbiz-practice

    这个“ofbiz-practice”项目为初学者提供了一个动手操作的平台,通过实际操作,他们可以深入理解OFBiz的工作原理,从而逐步掌握这个强大的企业级应用框架。同时,这样的实践也有助于提升开发者在Web应用开发中的问题...

    ofbiz--A Beginners Development Guide--Part 3

    此外,学习如何使用OFBiz的数据库工具,如Entity Manager,来操作实体和数据,也是提升开发效率的关键。 在实际开发过程中,理解OFBiz的数据模型至关重要。OFBiz使用EJB 3.0的持久化模型,即实体Bean(Entity Bean...

    WIN7上安装Ofbiz 数据库 postgresql

    在本文中,我们将详细介绍如何在Windows 7操作系统上安装OFBiz企业应用框架,并配置PostgreSQL作为其数据库。OFBiz是一个开源的企业级应用平台,而PostgreSQL是一个强大的对象关系型数据库管理系统,它们共同为企业...

    Ofbiz10.04改用mysql数据库配置

    - `check-on-start`、`add-missing-on-start`和`check-pks-on-start`:控制Ofbiz在启动时对数据库的检查和处理。 - `use-foreign-keys`和`join-style`:设置外键使用和JOIN语句的风格。 - `drop-fk-use-foreign-key-...

    OFBiz教程-初学者开发指南

    在OFBiz中,CRUD操作涉及到数据库实体的创建、读取、更新和删除。同时,你需要学习编写服务,这通常是通过XML定义的服务事件和服务调用来实现的。这部分教程将引导你完成这些基本操作。 **6. ECA(事件-条件-动作)...

    ofbiz 入门+增删改查+实体

    对于CRUD操作,OFBiz提供了一套完善的API和服务,可以方便地对实体进行增删改查。例如,使用EntityEngine API的`EntityQuery`和`EntityEJBQLQuery`类进行查询,`EntityCreate`、`EntityUpdate`和`EntityDelete`进行...

    ofbiz-lianghh:基于ofbiz框架的项目

    - **数据库操作**:熟练使用SQL语言,理解关系型数据库的基本原理。 - **XML和XSLT**:OFBiz的配置文件和数据交换通常涉及XML,而XSLT用于转换XML文档。 - **版本控制工具**:如Git,用于版本管理和协作开发。 - **...

    ofbiz实现oracle平台小例子详解步骤及注意的问题.doc

    - 在处理数据库操作时,确保遵循最佳实践,如事务管理,以确保数据的一致性和完整性。 - 当调整OFBiz配置时,记得备份重要文件,以防止意外情况。 - 测试每个步骤,确保所有更改都能正常工作,特别是在数据库连接和...

    ofbiz安装与配置

    本文详细介绍了 Ofbiz 的安装与配置过程,包括环境搭建、Eclipse 参数及插件设置、Ofbiz 项目结构、使用 Eclipse 打开 Ofbiz 的 Ant 命令、Ofbiz 数据库(MySQL)安装及配置等内容。希望本文能够帮助初学者快速上手 ...

    Apache OFBiz Development The Beginner's Tutorial

    通过上述章节的学习,读者不仅能够掌握 OFBiz 的基本安装和配置过程,还能够了解如何根据业务需求对 OFBiz 进行定制化开发。此外,还学习了如何管理数据、优化用户界面以及实现自动化流程等功能。这些知识对于构建...

Global site tag (gtag.js) - Google Analytics