ODOS架构的企业组织架构管理软件有什么好处?

1695人阅读
企业管理软件中的组织模型和权限模型
组织模型是管理软件中系统建模的一个重要组成部分(企业模型一般包括资源模型、组织模型、信息模型、功能模型、流程模型),权限模型是管理软件系统的安全体系的核心,这两个模型本身既有很强的独立性,在具体应用中又有关联。而且这两个模型都比较容易通用化,这一点对我们的管理软件平台尤为重要。本文分别描述讨论了MIS系统的通用组织模型和权限模型,以及对两种模型的整合,最终结果可作为我们的MIS系统或者软件平台中组织模型和权限系统的基础。
2. 组织模型
在企业中,组织是为了完成企业目标而形成的具有特定结构、分工协作的团队。组织模型就是用来定义企业的组织形式的模型,用于表达企业组织机构的中的实体间的层次和隶属,它以职责、权限的形式定义了企业成员、企业各个部门的作用与任务,同时提供灵活的结构以适应不同的企业或企业中不同的组织结构,组织模型是业务模型的重要组成部分和基础。
2.1 企业组织机构类型
随着企业的产生和发展及领导体制的演变,企业组织结构形式也经历了一个发展变化的过程。迄今,企业组织结构主要的形式有:直线制,职能制,直线职能制,事业部制,模拟分权制,矩阵结构等。
2.2 组织机构建模
从建模的角度来讲,上述各种类型中大部分都可以用树型层次机构来表示,例外的就是近年来应用越来越多的一种比较先进的管理模式-矩阵式管理,它使得组织机构的建模复杂了很多。我们先来描述组织模型中一般包括的元素单元,然后再分别描述层次型和矩阵型的组织机构模型。
2.2.1 组织模型中的元素单元
应用中,我们可以看到组织机构中的各种元素,如:集团、公司、区域、子公司、部门、岗位、职员、职责、权限等等。在将组织机构抽象形成组织模型的过程中,我们可以将公司、部门等等这些团体性质的单元统一抽象为"组织",并且一般都是层次结构,可表示为图1。岗位隶属于具体的组织,表示具体组织中的分工,并且也有层次关系。职务是对组织分工的通用描述,如经理是一个职务而某部门的经理是一个岗位。部门职能描述的是一个部门的主要工作范围和职责。岗位职责描述的是一个岗位所应该担负的责任和工作范围。
在明确了组织模型中的元素单元之后,我们将他们组织在一起,描述他们的关系,形成组织模型。
2.2.2 层次型组织模型
针对非矩阵式管理的组织机构提出以下的层次组织模型:
其中组织的层次比较好理解,而岗位的层次表明了不仅在某个组织下的岗位有层次,实际所有岗位组成一颗完整的岗位树,都是树状层次结构中的节点。这是由于每个岗位都有直接上级,也就是他汇报工作的对象。下图作为组织机构的一个简单实例说明了这个问题。
2.2.3 矩阵式组织模型
矩阵结构的形成有两种:一种是项目部或工作组的形式,将原属多个部门的人员抽出来组成项目部或工作组,集中力量解决某个问题,这种形式都有明确的阶段性目标,一般都是临时性机构,在问题解决后项目部将解散,人员重新回归原部门。另一种是企业在壮大之后,为了方便管理和沟通,按不同的角度进行了分割,形成2维矩阵甚至多维矩阵。最常见的是分别按区域和职能分割,形成矩阵式管理。例如:某公司北京销售部可能就要同时受到北京分公司和总公司销售部门的管理。当然大公司角度也可能很多,如IBM分别按区域、产品体系、职能等五六种角度划分为复杂的多维矩阵式组织。
矩阵式的组织机构增加了我们建模的难度和模型的复杂度。为了支持矩阵式的组织机构,我们的上面的组织模型需要进一步改进。对于相对简单的2维矩阵,我们可以在原来的模型上再增加一个组织层次,同时岗位也会增加一个层次关系,同一岗位可能会有多个领导岗位。
对于多维矩阵,由于组织间关系比较复杂,我们可以引入责任的概念来抽象组织之间的关系。如下图。
责任表示了组织或岗位之间的关系,责任类型表示这种关系的本质或种类。对多维管理矩阵,我们可以针对不同的维度创建不同的责任类型,将组织通过不同类型的责任关联起来。使用责任模式描述组织关系的实例如下图所示。
3. 权限模型
权限模型也就是系统访问控制模型,是系统安全方案的核心。访问控制机制可以限制对关键资源的访问,防止非法用户进入系统及合法用户对系统资源的非法使用。
3.1 访问控制方法
目前的主流访问控制技术有:自主访问控制(DAC)、强制访问控制(MAC)、基于角色的访问控制(RBAC)。
DAC(Discretionary Access Control)将访问规则存储在访问控制矩阵中,该矩阵的行表示主体,列表示客体,矩阵的每个元素表示某个主体对某个客体的访问授权。用户对任一客体的访问请求都要检查这个访问控制矩阵。如果矩阵中用户和客体的交叉点上记录有这个访问类型,那么访问就被允许,否则就被拒绝。所谓自主,是指具有授予某种访问权力的主体(用户)能够自己决定是否将访问控制权限的某个子集授予其他的主体或从其他主体那里收回他所授予的访问权限。我国有大量的管理信息系统都采用了DAC作为访问控制的方法,我们的成本管理系统和材料管理系统也用的是其中的访问控制矩阵的方法,只是没有实现用户自主的授权。
<p class="MsoNormal" style="LINE-HEIGHT: 140%;
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:5939次
排名:千里之外
(1)(3)(1)(1)按字母分类 :
版权所有 慧聪网
通用网址:hc360
互联网药品信息服务资格证书:(京)-经营性- 海淀公安局网络备案编号:
Copyright?2000-. All Rights Reserved我上一篇文章《用友 U9 SOA Ready》写完后,有朋友说里面的企业管理软件平台架构讲的非常好,可惜被用友的内容给遮盖了,希望我能独立成篇,真正把企业管理软件平台架构讲透。于是就成了这篇博文的动笔之因。
企业管理软件,由于进入门坎低,各行各业各层次企业都需要,做面向企业应用比做面向个人应用要赚钱多,好销售,所以中国内地有相当大部分的程序员在从事着企业管理软件的开发。
尤其是接项目的软件公司,这类公司往往在中国当前软件行业占很多。3-4个或5-6个程序员,老板拉来什么项目就做什么项目,进销存、费用报销、销售管理、客服维修工单、请假考勤管理等等为大部分单子内容。
有 朋友留言:就10来万的单子,就1-2个程序员,从调研到设计到开发到测试到打包到实施安装到培训到推动上线到支持,全活儿。哪来的精力再去开发平台。再 说了,都是10来万的单子,开发平台就大才小用了,什么设计模式,什么OO,什么界面和代码分离,什么代码重构,都扯淡,往界面拖控件,用ADO连数据 库,OK。费那精神干嘛,把钱快速赚到才是真理。
其实,你发现没,你做的管理软件(叫它MIS也行,你爱戴高帽就叫它ERP)有一些东西都 挺相似。我有个专门给小企业做网站的哥们,5天一个网站。他手里面从免费邮箱服务器、BBS论坛、流量统计软件、网站新闻内容管理系统全从网上找好源代 码,各种图标图片素材库,机器上装好Dreamweaver、PhotoShop、Flash。小企业老板来了,他把过去做的案例往出一拿,你挑吧。然后 七凑八凑几天完工。
这是不是平台呢?
我们为什么需要平台?我们需要什么样的平台?平台应该包括哪些东西?一个完备的平台是怎样的?
带着这些问题,我们一一揭秘。
拿我哥们刚才的例子剖析。我个人认为那就是一个平台。我们为什么需要平台?就是为了不每次都重新发明轮子,为了能快速的完成代码工作(可以多赚点钱或者可以多打会游戏或者瞌睡或者可以多时间去泡MM)。
快速完成,是平台的第一目标。但是快速三下五除二干完了,去客户那里一跑,BUG百出,倒霉,还得熬夜修改,长期出差回不了家。修改代码,痛苦,还不如推倒重新正式写代码。
看来,平台的第二个目标必须是稳定。
既能快速开发,又能稳定,这是个好平台了吧。
不, 客户个性化需求来了,发现真难改。按照普通简单流程处理(增/删/改/查 列表/明细),确实平台能给很大帮助,但是客户一个性化,平台就不灵了,个性化代码怎么都插不进去手。平台自成一套圈子,外围异常代码根本插不进去(这是 现在很多号称平台的产品都共有的最大弊病)。
好不容易遇到个好个性化定制的平台,平台性能不佳,老挂机,客户的电话吼的真想把电话线拔掉,甚至幻想全公司电话和互联网和自己的手机都坏了。
终于搞定以上的所有问题,给客户安装上,培训好,推动上线,终于可以闪人了。回到自己的床上,真舒服呀。
没想到恶梦才刚刚开始。客户的电话来了:我发现报表不对呀,数对不上去,你看哪里出问题了?
O,My God。我刚回来,你就...。 我又不能飞过去。好吧,好吧,你有QQ或PcAnyWhere吗,我们来连一下,我给查一下数据库。什么?服务器不容许上网?那我怎么办?
看来需要一个排错、可跟踪、可输出详细日志、可过滤日志的东西,就像SQLSERVER的查询跟踪器一样。
嗯,好不容易把问题搞定,修改完代码,需要给客户升级。
什么,你们家没有网管,都是兼职的,根本不会SQLSERVER,脚本怎么执行,怎么备份,不知道?
算我倒霉,电话我告诉你一步步操作。(长途电话费N多,老板冲你发火,你低头不语,心里念到这个猪头)
什么?升级了也不好用?那你肯定没按我说的操作来。
什么?有的机器好用,有的机器不好用?你肯定没有把所有客户端都升级了。
哦,看来需要一个自动升级的模块。
挖咔咔,软件卖的好好哦。咿呀咿呀咿。可是,可是...。居然有家伙盗版使用我们的软件,看来我不加密不行了。
加密,加KEY,加并发用户数,加正版判别,加使用期过期。
嗯,终于天下太平了,抱得美人归。
从 以上来看,我们似乎并不是为了平台而平台,为了市场宣传和销售便利而做平台噱头。我们确实在多如牛毛的小项目的水深火热战火纷飞中,我们渴望有这些东西将 我们快速解脱。如果我们是开发中大型系统的,我们的产品需要延续生命周期8-10年,需要部署给成千上万的客户,客户需要管理几亿的关键数据,有几千个客 户并发,我们更需要平台。
所以,不管做小项目的,或者做大项目的,我们都需要平台。
那我们需要什么样的平台。其实上述的场景中已经把平台的关键特性都说了一遍,现在我总结一下:
1可以帮助开发人员快速开发
3可以个性化定制
4可以跟踪日志排错
5可以自动升级
6软件版权保护
为了做到这些,国内软件精英不知有多少人前赴后继的的投入研究(甚至做OA的,做工作流的,也号称做平台)。让我们历数历数,看看各自的特点和优缺点,以对照一下我们需要的特性,他们的平台具备不?
大连雅奇,95年我就知道它了。当时好像是Foxbase版本的。可以生成菜单、界面代码。其他的我现在忘了。不过去年CSDN还报道了一次大连雅奇
1报表打印,支持二维、交叉、套打、单据格式、多栏头、导出HTML、PDF、EXCEL、DBF肯定是必须的。计算公式有没有?变量有没有?代码调用API有没有?嵌入图表有没有?小分组合计行不行?最底最右的总合计有没有?支持不支持主从?支持不支持链接钻取?
2图表 当然支持折线、直方、饼图。不知道EXCEL所能支持的图表,它是否都能支持,而且像EXCEL一样好看。漏斗图有没有,里程图有没有?做领导报表(可以起名为管理驾驶舱或商业智能门户)时非常需要。
3控件 可分组、可过滤、可定制查询、可定制列视图、可多排序、可导出、可预览、可小计的Grid控件有没有?可以权限管制行列数据,定制列视图的参照录入控件有没有?日历控件有没有?财务凭证控件有没有?
4企业内部即时通讯模块、邮件收发模块、预警提醒模块有没有呢?
其 实,这是在企业应用中极为常见的一些公共功能。有一部份朋友给我QQ留言,他说平台架构就是:中间件+Hibernate(ORM框架)+structs (MVC框架)+spring(AOP框架)+JSF控件(UI框架)+Log4j(日志框架)+JUnit(测试框架)+Ant(Build框架)+ JasperReports(报表框架)+JFreeChart(图表框架)+osWorkFlow(工作流框架)。
我说对,这是平台架构,但不是企业管理软件的平台架构。企业管理软件的平台架构需要更上一层,能方便开发人员快速稳定的开发和修改。
大 连雅奇能一直存活到如今,从各方面看虽已跟不上未来,但目前很多小软件公司和小企业还在进行着初步的信息化,所以还是有很多的市场空间的。(我看到华军软 件里有人发布的所谓强大平台,一下载一看,原来是一个数据库维护软件,让人尴尬,但是还有大量的个人或2人工作室在不断奋斗制造着这类软件,我已经看到了 很多雷同的软件了,也有市场?可能)。
讲完最老的大连雅奇,在企业管理软件平台界,最有名的就数思维加速(现在改名起步)。起步从1999年开始起步,技术一直跟的很紧,做的也非常深入,我个人认为,起步是做企业管理软件平台最优秀的一个。
1 起步加入了工作流,非常适应时代
2加入了集团企业多组织结构,非常适应时代
3起步有数据库建模工具,有版本管理工具,有部署工具,报表、图表自不用说。居然还有甘特图和日历,还有即时通讯工具
4起步拥有自己研发的代码开发IDE。这是国内没有的。老宋为了解决常规平台自我封闭无法定制的诟病下了很大的气力,让简单开发和个性定制融合。
5能支持JAVA中间件,也能支持COM+,能WEB,也能C/S。这也是国内没有的。
IDE, 既是起步的杀手功能,也是起步的软肋(想起一句古龙的话:敌人的优点也就是他的缺点)。IDE这个东西,世界有三巨头:Eclipse、visual studio、Borland。大家都是干软件的,大部分都是选择这三类IDE,对这三类IDE很是习惯。但是现在要舍弃三巨头,用了起步的平台,就需要 用起步的IDE,而且IDE还没有三巨头做的好(要想做好,谈何容易。君不见Eclipse有IBM巨资推动,visual& studio更是微软的一个重要产品线,投入大量人力。如果起步也要做,那岂不是平台、IDE、工作流都要并进?要知道,这三块中的每一块,都是需要单独 一个公司,而且是相当实力的公司才能做好)。
于是,上海普元学乖了。IDE,我们就用Eclipse。
当然,还是老三套:控件+工作流+报表。
普 元的平台框架有组织结构管理(不知道是否支持区域管理组织和集团管理组织?)、部署工具、权限管理(这个非常重要,不知道能不能管理到业务实体的每一个操 作和数据行列可访问性?)、业务字典管理(这个没必要单提出来吧?运行参数的配置才是最重要的)。不过普元具备了日志、异常、定制任务。更难能可贵的是, 普元还提出了Cache机制(这个在企业管理软件领域中其实挺难。它不像咱们的通常论坛网站,如天涯,也并发量大需要Cache,但是天涯也仅仅是看,而 企业管理软件主要是频繁读写和业务计算处理,这怎么Cache,我也需要学习学习,过去一直主要依赖数据库设计和代码写法和功能设计来保证性能)。
普元做JAVA,金富瑞就做.NET。
三大件继续拿上来:控件+工作流+报表。
但很可贵的是,金富瑞提出了虚拟组织这一说法。这个确实老遇到。还有就是权限管理,从菜单到数据到列到行到按钮,控制的挺细,不过细就是多,多就会漏洞多,看来金富瑞需要深刻去思考一下数据库架构的设计。
这些都是专注做平台的。
但是,那些主要做管理软件的公司,也有自己的平台。甚至自己的平台还卖。如浪潮楼上(不过山东人的朴实与粗糙,尽在软件中)。
自己用的平台,东软也有,但没有对外宣传,也不卖。偷偷自己用,做了N多医保、税务局之类的项目。(我曾经剖析的时候,发掘设计的思想和金蝶K3的平台特别相似)
用 友、金蝶这两大企业管理软件公司当然也有自己的平台。用友有U8平台和NC平台,金蝶有K3和EAS平台。不过,明显的是,金蝶的平台架构思路比用友高一 级。从业务实体自省到权限控制到日志到二次开发,金蝶颇有套路,思路清晰抽象高度。而用友的平台,似乎还看业务是业务,看菜单是菜单。
讲了这么多,几乎主流的平台厂商我都数了个遍,当然从事各细分行业管理软件的公司也都有自己的平台,只不过那类平台和本行业业务又结合的特别紧密,开发自己行业软件特别快速稳定易用,但不具有普遍意义。
我把我在上一篇文章中写的企业管理软件平台架构内容再贴到最后,以使大家好总览:
1登陆用户口令验证、license许可验证、盗版验证、过期失效验证、版本差异验证
2主控台 用户功能树 管理主控台
3表单设计器、业务实体设计器、工作流设计器、报表设计器、功能菜单设计器、多语言设计器、多皮肤设计器、查询过滤定制器
4UI框架:Grid/Toob bar/Tree/TabSheet/Menubar/参照录入组件/Edit/Button/Combo之类
5单实体输入框架、主从List/Detail输入框架
6运行配置参数设置、单号计数器、业务预警设置
7异常框架、业务实体权限框架、业务实体存储引擎、业务实体查询引擎
8报表:套打、单据报表、普通二维查询统计报表、交叉报表、图表
9工作流引擎、消息引擎、自动任务引擎
10企业组织结构设计工具、权限分配工具、数据导入导出工具、数据备份恢复工具、升级更新工具、错误诊断跟踪工具、性能监测工具、日志查看工具
11OFFICE集成、BO集成、通信集成、邮件集成、短信集成、IM集成、搜索集成、电子商务集成、企业门户集成等等一切外围集成&
刚才看到有朋友留言,说到单据如何变化、单据字段如何变化、报表如何变化、数据库如何变化、业务流程如何变化。
刚才一看图,确实是忘了写单据设计器了。这个在各个平台上都有。不过现在单据设计器的主流都是在eclipse中做调整,然后再部署。
有了单据设计器,单据变化、单据字段变化就都能适应。
报表有报表设计器来适应。
数据库有业务实体设计器来适应。
业务流程有工作流来适应。如果是很特殊的业务流程变化,需要编写代码。一个完全不编写代码就靠配置实现企业业务的平台是不存在的,除非业务很简单。
其实笔者原意也不是对国内平台上逐个品头论足。目的只是希望给大家普及平台架构,并且介绍国内主流的一些平台厂商。笔者也在近10年中搭建过两代产品线的平台架构,管理数据都在几亿条,涉及用户数也在几万,所以希望给没有架构思路的朋友们一些经验分享而已。
大家如果想了解企业管理软件平台的更细节的架构和原理,可以去起步、金富瑞、浪潮楼上、普元、金蝶、用友的网站上去看他们详细的技术架构白皮书。看看他们是如何真实的实现一个企业管理软件业务平台。
更深层次的如何实现,架构的每个细节难点和实现思路,我想,应该不是我这篇博文能够承担的。
&另外,看到留言说业务平台是为了适应企业变化无常的需求其 实这是个误区。业务平台并不能适应企业变化无常的需求,业务平台只是把公共的部分提取了出来,而变化无常的需求是由开发语言来完成的。如果一个业务平台无 法容易的融入开发IDE编写的代码,这个业务平台基本不能用,只能算是一个简单的玩具,做些简单的增删改和确认的工作而已。
有些平台,为了满足个性化特殊处理,内嵌了很复杂的业务逻辑语句,甚至也和起步一样做了IDE,即使走到这一步,也不如程序员用IDE编写代码方便。
我们做平台,不是为了不用IDE,不用写代码,不是为了实施人员或业务人员拿去自己定义功能去吧,程序员没有用了,程序员只要维护好平台就OK了。这种认识是错误的。SAP作为全球最大的企业管理软件厂商也无法做到。
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:4425537次
积分:109032
积分:109032
排名:第2名
原创:6348篇
转载:35篇
评论:1347条
(117)(193)(164)(396)(421)(264)(197)(395)(284)(215)(293)(142)(290)(248)(220)(318)(528)(424)(379)(265)(248)(132)(117)(91)(44)在做查询时,经常遇到一类需求。请看下面的SQL语句查询
SELECT * FROM Company
WHERE CompanyCode='Kingston' AND Suspended='N' AND DbServer='James\SQLEXPRESS'
这里有三个条件,在界面中,也就是我们需要增加三个控件来供用户输入值,再拼接成SQL发送到服务器。
再来看一下界面中的情况,根据客户名称,下单日期,是否过帐,是否完成4个选项来读取发票信息
点击Refresh按钮之后,产生的SQL条件,可能像下面这样写的一样
FROM Invoce WHERE
Customer='A'
and IssueDate='' and
Posted='Y' and Closed='N'
现在遇到的问题时,读取界面中的控件的用户输入值,转化为SQL条件,需要经历一些复杂的重复的操作。
如果用户在这四个控件不输入任何值,那么生成的SQL语句应该直接是
FROM Invoce
如果用户只想通过发票日期来过滤,则SQL语句应该是这样的
FROM Invoce WHERE IssueDate=''
或者是其它的情况,因为WHERE部分的条件出现的时机不确定,所以我们产生的SQL通常是这样的,在考虑全部情况
FROM Invoce WHERE 1=1
Customer='A'
and IssueDate='' and
Posted='Y' and Closed='N'
为了解决这一类问题,下面解释一下,我所遇到到的最好的办法。
设计object control,如下图中所示。添加EntityName和FieldName
在运行时,以下面的代码获取它产生的SQL语句条件
efcCustomerNo.GetPredicateExpression();
这样设计方法,考虑了以下几种情况
1&#160; 当用户不在控件中输入任何值时,上面的原代码不返回任何条件。
2 用户想输入一个范围内的值,输入两个值之后,产生 BETWEEN A AND B条件
3 用户想输入一个唯一的过滤条件值,输入一个值A,产生条件 CustomerNo=’A’
依据查询的可能,还有可能是like,模糊查询。请看下面的枚举值
public enum ReportFieldSelectionCondition
[DisplayText(&All&)]
[DisplayText(&Equal&)]
Equal = 1,
[DisplayText(&Exclude&)]
Exclude = 6,
[DisplayText(&Include&)]
Include = 5,
[DisplayText(&In Range&)]
InRange = 3,
[DisplayText(&Like&)]
[DisplayText(&Not Equal&)]
NotEqual = 2,
[DisplayText(&Not Like&)]
NotLike = 8,
[DisplayText(&Out Range&)]
OutRange = 4
查询条件的几种情况,它都考虑到。根据这些情况,产生不同的SQL条件部分,供程序调用。
控件的基础代码稍微有些复杂,以Between为例子,代码像这样所示
if (!flag)
expression.Add((IPredicate) (field &= valueFrom));
if (!flag2)
expression.Add((IPredicate) (field &= valueTo));
代码的意图明了,第一个控件中有值时,产生&=的表达式,第二个控件中有值时,产生&=的条件。
有三种类型的object control,字符串类型,日期类型和bool类型,上面的图中有全部显示。
字符串类型经常遇到,这篇文章中解释了这个类型的控件,日期类型与字符串相似,产生的条件是日期的比较操作。
bool类型是为了解决一些值,真/假的情况。比如是否过帐,日记帐是否完成。控件有二个基本的属性
[DefaultValue(&&), EditorBrowsable(EditorBrowsableState.Always),
Browsable(true)]
public string EntityName
return this._entityN
this._entityName = value;
[EditorBrowsable(EditorBrowsableState.Always), Browsable(true), DefaultValue(&&)]
public string FieldName
return this._fieldN
this._fieldName = value;
如果接触过ORM的查询的写法,可能有很多代码像下面这样
if (!AllowViewAllTransaction)
args.PredicateBucket.PredicateExpression.Add(AccountsReceivableInvoiceFields.CreatedBy == Shared.CurrentUser.Userid);
if (!Shared.CurrentUserSession.AllowAccessAllCustomers)
args.PredicateBucket.PredicateExpression.Add(Shared.GetAllowedCustomerNoPredicateExpression(AccountsReceivableInvoiceFields.CustomerNo));
if (_show)
_peCustomerNo = this.efcCustomerNo.GetPredicateExpression();
_pePostedFilter = this.efcPostedFilter.GetPredicateExpression();
_peIssueDate = this.efcIssueDate.GetPredicateExpression();
_peClosedFilter = this.efcClosedFilter.GetPredicateExpression();
FetchAccountsReceivableInvoice();
PredicationExpress类型相当于 CustomerNo=’A’ 这样的条件的面向对象的封装,最终产生的SQL条件,与开头的一样,这个过程由ORM框架来负责产生,根据类型及其属性,产生对应的SQL语句。
如果没有应用ORM工具,缺少entityName和fieldName,同样也可以应用这里介绍的技术,直接用SQL表名和字段名即可,再根据各种条件组合判断,产生不同的查询条件。
应用本文中的方法,在做查询类程序时,可以节省大量的重复的代码。
阅读(...) 评论()经验内容仅供参考,如果您需解决具体问题(尤其法律、医学等领域),建议您详细咨询相关领域专业人士。
请扫描分享到朋友圈}

我要回帖

更多关于 企业组织架构 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信