版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、小灵呼LQuery开发指南-替代JDBC快速操作数据库Ver 南京小灵呼科技 HYPERLINK :/ HYPERLINK :/ HYPERLINK :/ 索引与目录 TOC o 1-3 h z u HYPERLINK l _Toc270084160 第一章文档介绍 PAGEREF _Toc270084160 h 4 HYPERLINK l _Toc270084161 1.1.目的 PAGEREF _Toc270084161 h 4 HYPERLINK l _Toc270084162 1.2.范围 PAGEREF _Toc270084162 h 4 HYPERLINK l _Toc270084
2、163 1.3.分发 PAGEREF _Toc270084163 h 4 HYPERLINK l _Toc270084164 1.4.版权 PAGEREF _Toc270084164 h 4 HYPERLINK l _Toc270084165 第二章总体设计 PAGEREF _Toc270084165 h 5 HYPERLINK l _Toc270084166 总体体系架构 PAGEREF _Toc270084166 h 5 HYPERLINK l _Toc270084167 系统设计原那么 PAGEREF _Toc270084167 h 6 HYPERLINK l _Toc270084168
3、 性能 PAGEREF _Toc270084168 h 6 HYPERLINK l _Toc270084169 可靠性 PAGEREF _Toc270084169 h 6 HYPERLINK l _Toc270084170 吞吐量 PAGEREF _Toc270084170 h 6 HYPERLINK l _Toc270084171 可扩充性 PAGEREF _Toc270084171 h 7 HYPERLINK l _Toc270084172 可管理性 PAGEREF _Toc270084172 h 7 HYPERLINK l _Toc270084173 可重用性 PAGEREF _Toc2
4、70084173 h 7 HYPERLINK l _Toc270084174 平安性 PAGEREF _Toc270084174 h 7 HYPERLINK l _Toc270084175 设计思想和方法 PAGEREF _Toc270084175 h 7 HYPERLINK l _Toc270084176 三层体系结构 PAGEREF _Toc270084176 h 7 HYPERLINK l _Toc270084177 基于JAVA/J2EE/SOA/XML/AJAX的技术 PAGEREF _Toc270084177 h 7 HYPERLINK l _Toc270084178 业务功能多样
5、化且灵活配置 PAGEREF _Toc270084178 h 8 HYPERLINK l _Toc270084179 数据展现方式的多样化 PAGEREF _Toc270084179 h 8 HYPERLINK l _Toc270084180 平安控制模块和业务功能模块相互独立 PAGEREF _Toc270084180 h 8 HYPERLINK l _Toc270084181 LQuery体系架构 PAGEREF _Toc270084181 h 8 HYPERLINK l _Toc270084182 数据库查询分析 PAGEREF _Toc270084182 h 9 HYPERLINK l
6、 _Toc270084183 数据库修改 PAGEREF _Toc270084183 h 9 HYPERLINK l _Toc270084184 文件操作 PAGEREF _Toc270084184 h 10 HYPERLINK l _Toc270084185 数据接口 PAGEREF _Toc270084185 h 10 HYPERLINK l _Toc270084186 第三章配置文件分析 PAGEREF _Toc270084186 h 12 HYPERLINK l _Toc270084187 数据源的定义 PAGEREF _Toc270084187 h 12 HYPERLINK l _T
7、oc270084188 数据库明细查询 PAGEREF _Toc270084188 h 13 HYPERLINK l _Toc270084189 什么是明细查询? PAGEREF _Toc270084189 h 13 HYPERLINK l _Toc270084190 查询类xml配置说明 PAGEREF _Toc270084190 h 13 HYPERLINK l _Toc270084191 数据库汇总分析 PAGEREF _Toc270084191 h 17 HYPERLINK l _Toc270084192 什么是汇总分析? PAGEREF _Toc270084192 h 17 HYPE
8、RLINK l _Toc270084193 xml配置说明 PAGEREF _Toc270084193 h 18 HYPERLINK l _Toc270084194 数据库修改操作 PAGEREF _Toc270084194 h 21 HYPERLINK l _Toc270084195 什么是数据库修改操作? PAGEREF _Toc270084195 h 21 HYPERLINK l _Toc270084196 数据库修改类xml配置说明 PAGEREF _Toc270084196 h 21 HYPERLINK l _Toc270084197 文件操作 PAGEREF _Toc2700841
9、97 h 23 HYPERLINK l _Toc270084198 什么是文件操作? PAGEREF _Toc270084198 h 23 HYPERLINK l _Toc270084199 配置说明 PAGEREF _Toc270084199 h 23 HYPERLINK l _Toc270084200 第四章实例讲解 PAGEREF _Toc270084200 h 26 HYPERLINK l _Toc270084201 建立例如数据库 PAGEREF _Toc270084201 h 26 HYPERLINK l _Toc270084202 通过表单按条件明细查询 PAGEREF _Toc
10、270084202 h 27 HYPERLINK l _Toc270084203 通过API调用按明细查询 PAGEREF _Toc270084203 h 29 HYPERLINK l _Toc270084204 增加一个员工 PAGEREF _Toc270084204 h 31 HYPERLINK l _Toc270084205 批量增加员工 PAGEREF _Toc270084205 h 33 HYPERLINK l _Toc270084206 修改或删除员工信息 PAGEREF _Toc270084206 h 34 HYPERLINK l _Toc270084207 文件装载 PAGER
11、EF _Toc270084207 h 37 HYPERLINK l _Toc270084208 构造选择下拉框 PAGEREF _Toc270084208 h 40 HYPERLINK l _Toc270084209 构造选择下拉框(include方式) PAGEREF _Toc270084209 h 42 HYPERLINK l _Toc270084210 明细查询(同时显示班的名称) PAGEREF _Toc270084210 h 43 HYPERLINK l _Toc270084211 明细查询(自动显示字段名称) PAGEREF _Toc270084211 h 47 HYPERLINK
12、 l _Toc270084212 汇总分析(角度分析) PAGEREF _Toc270084212 h 52 HYPERLINK l _Toc270084213 第五章API调用接口 PAGEREF _Toc270084213 h 59 HYPERLINK l _Toc270084214 查询类的API调用 PAGEREF _Toc270084214 h 59 HYPERLINK l _Toc270084215 查询类QueryService方法 PAGEREF _Toc270084215 h 59 HYPERLINK l _Toc270084216 入口参数QueryRequestI说明 P
13、AGEREF _Toc270084216 h 59 HYPERLINK l _Toc270084217 返回值MyHashMap说明 PAGEREF _Toc270084217 h 60 HYPERLINK l _Toc270084218 第六章版权声明 PAGEREF _Toc270084218 h 61文档介绍 目的本手册主要介绍如何使用LQuery开发体系进行二次扩展开发。通过这个手册,用户可以了解LQuery开发体系的原理,并通过近一步的案例学习近一步掌握如何通过LQuery进行实际的应用层开发。 范围本指南主要覆盖了LQuery的设计原理、体系架构、如何配置实施、实例讲解,适合初学者
14、快速进行应用系统的二次开发。通过LQuery开发可以方便快捷地访问数据库及文件,尤其对于E-IVR的开发人员,可以很方便的基于LQuery框架访问各自的数据源。本指南适合于有一定的SQL语言根底并有一定的WEB页面JSP编程根底的人员阅读使用。 分发此文档授于小灵呼的客户及其他小灵呼授权的相关人员阅读和使用。 版权 该文档版权属于南京小灵呼科技所有,任何人或组织未经授权不得转载、销售、复制或应用于非此工程的任何应用场合。此工程是指基于小灵呼L系列的产品线包括LTalk、LCall、LCallplus、LCallback、LOffice、LService、LSale等的二次开发应用扩展。总体设计
15、总体体系架构通用查询分析处理引擎LQuery是基于三层体系结构设计的,上图是以在一个局域网系统为例描述各个层次间关系。表示层主要指客户端,面对操作人员,主要任务是显示用户界面比方查询分析条件,接受客户查询指令,最后展现查询结果。客户端程序使用的技术有HTML、XML、JAVASCRIPT、CSS、AJAX、JSP等。应用层主要处理应用逻辑,LQuery的核心模块也位于该层,它部署于中间件应用效劳器。目前支持的中间件效劳器有Tomcat 、JBOSS、WebLogic等。 应用层程序使用的技术有SERVLET、JAVABEAN和EJB等。数据层是保存LQuery所要处理的原始数据的,数据层的数据
16、可以是文本文件也可以是数据库。LQuery支持的数据库是MS Access、MS SQL Server、Sybase、Oracle等。小灵呼L系列的产品均以LQuery作为核心根底架构,如下列图:系统设计原那么LQuery的设计原那么考虑以下几个方面的要求:性能、可靠性、吞吐量、可扩充性、可管理性、可重用性和平安性。性能LQuery的性能一般用一个用户终端对某一个操作的响应时间来衡量,如不考虑后台数据库性能的开销,LQuery对以下各类操作的处理时间为:操作类型处理时间对表或基于存储过程的数据清单不超过2秒对表的汇总性角度分析不超过10秒对后台返回的数据进行图形展示不超过2秒可靠性LQuery
17、在生产运行系统中应该支持724小时不间断运行的要求。吞吐量LQuery应该支持一定的并发量,保证在多个前端用户同时进行查询分析的时候,系统能维持客户满意的处理性能并同时保证系统稳定运行不崩溃。系统能支持的并发用户数应至少在20个以上。可扩充性LQuery的可扩充性表达在两个层面:应用层和开发层。应用层的可扩充性是指平台提供的配置化的增加应用查询分析功能的能力,用户在不影响已有系统功能的前提下可以方便地增加额外的功能或修改已有功能。开发层的可扩充性表达在源程序的易于扩充和修改,这往往通过低耦合、接口和封装等设计技术去实现。可管理性LQuery应该有友好的用户界面,易于管理和维护,并允许动态的系统
18、配置管理。可重用性LQuery的组件应该能最大程度可重用,以提高开发和管理效率。平安性LQuery通过提供用户认证、功能权限和数据权限从而保证系统的平安性。设计思想和方法三层体系结构LQuery使用三层的B/S体系架构,即将应用功能分成表示层、功能层和数据层三个局部。表示层是应用的用户接口局部,它负担应用和用户间的对话。功能层负责处理具体的业务逻辑。数据层负责对数据库或文件数据的读写。这种三层的体系结构具有以下特点和优越性:客户端零维护、可扩展性好、平安性好和可移植性好。基于JAVA/J2EE/SOA/XML/AJAX的技术JAVA/J2EE/SOA/XML/AJAX技术可以支持分布式的企业应
19、用模型,可以提供可扩展的,模块化的组件开发模式和组件装配技术。基于JAVA/J2EE的企业应用可以方便快捷地部署到任意JAVA应用效劳其平台产品之上,从而实现“一次开发、处处可用的理想目标。基于SOA的效劳请求处理模式可以更好地解决企业内部多种系统之间的互联互通及数据共享,实现系统之间的轻耦合。而XML技术更是为系统之间的数据传递提供了更标准的表达方式。AJAX技术的广泛应用更是改善了用户的操作体验,通过页面的无刷新技术,使用户的页面执行效率得到了极大的提高。业务功能多样化且灵活配置LQuery可以对数据库中的表或视图进行清单式查询,也可以对能返回数据的存储过程做清单式查询,也可以对表或视图进
20、行汇总性的分析查询。LQuery各个查询功能是通过XML文件配置产生的,对各个功能的修改只需要修改配置文件,无需重新启动应用效劳器或重新登录。LQuery所需的各类代码表是从XML配置文件产生的或者动态从数据库读取,无需在源程序中维护。LQuery通过对XML的配置,可以对数据库表记录的内容直接进行修改操作,同时也可以对文本文件或excel文件的进行修改或批量读取。LQuery从在个层面上来说可以是struts+hibernate的替代品,但是LQuery使用起来更方便,功能更强大。数据展现方式的多样化LQuery对查询结果可以以系统自定义的风格进行展现,保持界面的一致性,用户也可以自己定义页
21、面展现的风格。系统的自定义的风格有:表格、饼图、柱状图、线图、柱状图3D和饼图3D等。通过LQuery的定制,开发者可以自己开发数据的展现页面。平安控制模块和业务功能模块相互独立LQuery对每一个用户请求URL是通过WEB效劳器提供的过滤器技术Filter实现合法性检查的,系统通过配置文件提供了对不同的页面的检查方式。在Filter过滤器根底上,平台提供了对操作人员及及其机构进行权限控制的功能,而业务功能模块无需关注平安控制是怎么实现的,只需专注业务功能的实现。LQuery体系架构LQuery体系架构如下列图: Web客户端发起的所有操作请求均通过Servlet Dispatcher派发,比
22、方,对于查询分析类的请求转由Servlet QueryAck处理,QueryAck调用业务层处理逻辑BizLayer。BizLayer根据不同的查询类型访问数据库或文件,获得查询结果返回给QueryAck。 QueryAck根据该查询的展现类型将数据转交应答页面AutoAck.jsp或其它自定义页面处理。数据库查询分析对于数据库查询分析类的操作请求,BizLayer可以处理的查询类型有:V对某个表或者视图的清单式的明细查询。P调用存储过程,以取得返回数据。A通过指定计算项及分析角度对表或视图中的数据进行汇总计算并返回结果。A横向趋势分析,比方汇总计算某年内各个月份的指定计算项,并返回结果。A|
23、纵向比照分析,比方汇总计算同一个月份不同年份的指定计算项,并返回结果。同时将计算项分为以下几类:1 直接从本查询配置的表中取数。2复合计算列,表达式的各字段必须都在本查询配置的表中4比重5复合计算列,表达式各字段不一定在一个同一个表中,合计项从本列取6复合计算列,表达式各字段不一定在一个同一个表中,合计项从本行取7从本查询的配置文件中直接取表达式8从附加查询取数数据库修改对于数据库修改类的操作请求,BizLayer可以处理的操作类型有:delByIndexFields根据主键集合批量删除记录。delByIndexField根据主键删除记录。updateByIndexField根据主键修改记录。
24、batchUpdate根据条件批量更新记录。batchInsert批量插入。Insert单次插入。fastSQL自定义SQL语句操作。文件操作对于文件操作类的操作请求,BizLayer可以处理的操作类型有:batchRead批量读取文件。updateSegmentByIndex更新文件片段。delSegmentByIndex删除文件片段。delFieldInSegmentByIndex删除文件片段中的某个字段。addSegmentByIndex增加文件片段。uploadFile上传文件。delUploadFile删除上传的文件。数据接口LQuery处理后的数据结果以一个ArrayList数组的
25、方式存储。比方:一个查询同时对多个表或存储过程进行查询,那么每个表或存储过程的查询结果以一个ArrayList存储,所有表的结果又以一个最终的ArrayList存储。每个表或存储过程的查询结果是有一条或多条记录的。对于每一条记录,是用一个HashMap存储其所有的字段名和值的。参见以下存储结构图:配置文件分析LQuery的功能主要是通过配置文件查询类配置文件:vWebRootscqoaccess *.xml,数据库修改类配置文件:vWebRootscdoaccess*.xml 及文件操作类配置文件fo_config.xml实现。对应scqoaccess、scdoaccess又分别存在两个文件夹
26、ucqoaccess、ucdoaccess,uc代表user defined(用户自定义的),如果同一个文件同时存在在于ucqoaccess和scqoaccess,那么系统将优先使用uc目录下的。每一类数据库查询有个ID即query_id,每一类数据库修改操作有个ID即do_id,每一类文件操作也有个ID即fo_id。这些ID会在分别存在于目录qoaccess、doaccess及文件fo_config.xml里。数据源的定义在正式发布的版本中,LQuery目前支持MS Access和MS SQL server数据源,缺省数据源在软件管理界面的业务参数页面配置或者在app_config.xml中
27、配置。缺省数据源在查询类XML和数据库修改类配置文件中无需特别指定,如需要操作其它数据源,可增加段指定。而这个数据源也需预先在vWebRootdb_config.xml中配置好。dSql Server 数据源的配置范例: HYPERLINK file:/E:EITVR5vWebRootdb_config.xml l # - mssql_1 !这行填上数据源的名称 这里是备注 mssql !这行填上数据源的类型,有mssql 和 access 两种可选 !这行填上数据源的IP,装sqlserver的机器的IP 1433 !装sqlserver的机器的sql server端口 vr !sqlser
28、ver数据库的名称 sa !sqlserver数据库的用户名称 lcall !sqlserver数据库的用户密码 定义好的数据源在查询类xml中使用范例:qo_m6mobile mssql_1 !这行填上本查询使用的数据源V100%.省略数据库明细查询什么是明细查询?明细查询指得是从数据库中查询一个表或多个表或视图视图在access中叫查询的1条或假设干条未经汇总的原始数据记录。比方以下SQL语句均为明细查询的语句:Select * from workersSelect *from workers where name=“张三Select v_ , v_ workers
29、.age from v_ workersv_ workers其实是一个视图,它是workers和team 的关联,以上语句实际等同于以下语句:Select , workers.age from workers a , team b where a.team_id=b.team_id where b. team_name=“二班查询类xml配置说明LQuery通过配置查询类xml文件可以实现以上的明细查询。用于明细查询的xml样式如下: query_workers查询员工信息V query_workers2 name40名字age40年龄name=charagenianl
30、inleint_additional_con_add addteam_idteam_id=charteamteam_idteam.team_namephone1phone=charphone2 phone=charphone3 phone=charphone4 phone=charworkers mid(code_area3,5,4) = 0000 and mid(code_area3,3,2) 00 andlen(name_area3)0 age desc manu workers_ack.jsp workers_top.jsp workers_query2 以上文件必须以query_id作
31、为文件名保存即文件名必须是 query_workers.xml配置说明:xml的段说明query_id一个.段的唯一标识,前台查询页面的form表单以后简称form表单中必须显式地指定query_id。description用来描述该明细查询的,对操作没影响。qtype可选择V或P,参见aid附加查询的query_id,通过附加查询可以一次性地产生多个查询的结果statement直接写sql语句,比方select * from workers或select distinct code_skill as code,name_skill as name,id_skill as id from dm
32、_skill order by id_skill ascconditionSQL条件where条件语句就是由构造的,每个condition构造的条件语句之间是且即and 的关系。condition/codecode对应的是数据库中表的字段名同时根据code从form表单中取值作为查询条件。比方:name=char构造的条件语句为 name=张三如果code为_additional_con_,代表直接从前台页面的form表单中取字段名为_additional_con_的值作为查询条件。condition/idid对应的是前台页面中form表单的字段名,如果没有id那么使用code,LQuery在
33、创立查询条件时候,首先取form表单中的id对应的值,如果没有,那么取code对应的值。condition/expr对应where条件语句中的关系符号= 表示 =ge表示 =le表示 =gt表示 lt表示 add表示condition/code为_additional_con_condition/type数据库中表的字段的类型,支持char,datetime,numeric,text,int,long,addcondition/or_code/or_id/or_expr/or_typecondition/or_code_10/or_id_10/or_expr_10/or_type_10为一个c
34、ondtion构造or查询语句,比方以上例子构造的or语句为( phone1=122 or phone2=122 or phone3=122 or phone4=122)team_idteam_name=charteamteam_idteam.team_name构造和其它表相关联的查询语句,比方假设form表单传入的team_name的值为二班,那么构造的语句为select . from workers , team where workers.team_id=team.team_id and team.team_name=二班join_table:被关联的表的表名join_code:被关联的
35、表的关联字段statement_code:关联时候使用的条件语句tabwidth自动显示查询结果时表格的宽度需要和前台页面配合使用。age40年龄每次查询的结果及本查询的所有field段将会被LQuery返回给前台页面,以自动显示查询结果需要和前台页面配合使用,参见。code:所有的code均以名为Field_AL的ArrayList数组的方式在session中返回。width:页面该字段的宽度,均以名为Field_Width的ArrayList数组的方式在session中返回。name:页面该字段的中文名,均以名为Field_Name_AL的ArrayList数组的方式在session中返回
36、。如果该字段为动态字段,code可以写成xml_df.1或xml_df.2,其中xml_df是动态字段在数据库中的名字且必须以_df结尾。additional_con在SQL查询语句中直接附加条件,比方比方: mid(code_area3,5,4) = 0000 and mid(code_area3,3,2) 00 and len(name_area3)0Mid是access自带的一个函数: 从一个文本字符串的指定位置开始,截取指定数目的字符 如code_area3=123456789” 那么mid(code_area3,5,4)=5678” <,>分别对应 因为在xml中为保存字,所
37、以分别用代替只需要按access语法去使用access自带函数,当当前实际数据库为MS SQL server的时候,系统会自动转化成SQL server的自带函数。order_by是在SQL语句中追加order by语句,比方:age asc 代表查询结果以age升序排序age desc 代表查询结果以age降序排序style查询结果的显示模式,auto: 通过系统页面自动显示;manu:通过ackjsp或forward指定的页面显示ackjspLQuery在执行查询后跳转到所定义的页面显示相关结果topjsp存放查询条件的页面,也就是向LQuery发起操作请求的页面 workers_quer
38、y2 w 也是用于在执行查询语句后跳转到所定义的页面,但是是有条件跳转,中定义条件,如果页面传过来的forward等于中的值,那么跳转否那么不跳转。是无条件跳转,优先级没有高,如果条件不满足,那么执行跳转数据库汇总分析什么是汇总分析?汇总分析指得是从数据库中查询一个表或多个表或视图视图在access中叫查询的数据再根据一定的角度进行聚合统计产生相应的结果。比方以下SQL语句均为汇总分析的语句:Select team_id ,sum(wages) as wages_total from workers group by team_id按班组编号分类汇总每个班的薪水总和。SELECT b.team
39、_name AS name, sum(a.wages) AS wages_total FROM workers AS a, workers_team AS b 按班组名称分类汇总每个班的薪水总和。SELECT b.team_name AS name, sum(a.wages) AS wages_total FROM workers AS a, workers_team AS b and sex=男 按班组编号分类汇总每个班的男员工的薪水总和。因为workers表本身只存有班的编号,不存放班的名称,可以通过和代码表维表workers_team进行关联进行汇总。xml配置说明LQuery通过配置x
40、ml文件可以实现以上的汇总。用于汇总分析的xml样式同明细查询,它们可以共用一个文件。:格式如下: ana_workerssample汇总分析员工薪水Aana_workers_numwages_total薪水10.00wages_ratio比重 wages_total 4% num_workers 人数81num_workers_abc0num_workers_ratio人数比重 num_workers 4%wages_avg平均工资5wages_total/num_workers0.00sex=charcode_teamteam_idworkers_teamteam_id workers_t
41、eam.time_nameworkersborn_datemanu/sample/ana_workers_top.jsp/query/ana_workers_ack.jsp ana_workers_numsample汇总分析员工人数Anum_workers人数7count(*)0sex=charcode_teamteam_idworkers_teamteam_id workers_team.time_nameworkersborn_datemanu/sample/ana_workers_top.jsp/query/ana_workers_ack.jsp 配置说明:xml的段说明query_id
42、一个.段的唯一标识,前台查询页面的form表单以后简称form表单中必须显式地指定query_id。description用来描述该明细查询的,对操作没影响。qtypeA,参见aid附加查询的query_idstatement需要汇总的主表表名,非代码表。conditionSQL条件where条件语句就是由构造的,每个condition构造的条件语句之间是且即and 的关系。具体可以参见明细查询的说明。wages_total薪水10.00falsefield字段用以表示汇总查询的显示结果,如果field/display的值为false,将不显示该字段field/code:字段名field/na
43、me:字段的名称,将会显示在页面的表格头部field/mtype:参见计算项分类field/nformat:显示的数字的精确度0代表整数,0.0代表小数点后1位,0.00代表小数点后2位,以此类推 num_workers 人数81num_workers_abc0这是个通过附加查询取数的例子,员工人数可通过附加查询ana_workers_num取得,再被ana_workers所用,如果有多个附加查询,那么以aquery_idx以1开始往后类推。code_teamteam_idworkers_teamteam_idworkers_team.time_name汇总分析的分析角度以,一个汇总分析可能要
44、用到的分析角度,均要定义。code:分析角度的标识,该标识应该从页面form表单传入tabfield:对应主表的字段join_table:分析角度对应的代码表维表的表名join_code:代码表的关联字段statement_code:显示代码表字段的名称born_date当需要进行横向趋势分析或纵向比照的时候需要指定时间维对应的字段stylemanu:通过ackjsp指定的页面显示ackjspLQuery在执行查询后跳转到所定义的页面显示相关结果topjsp存放查询条件的页面,也就是向LQuery发起操作请求的页面数据库修改操作什么是数据库修改操作?数据库修改操作会对数据库中数据内容产生变化,
45、比方表记录的增加或减少,表中某条记录某个字段的值的变化。以下SQL语句均为数据库修改操作语句:insert into workers ( id,team_id,name, age)values (1000,2,张三,20)update workers set age=20 where id=1000delete from workers where id=1000数据库修改类xml配置说明LQuery通过配置xml文件可以实现以上的数据库修改操作的。xml样式如下: do_workers有关workers的数据库修改Tid员工号chartrueteam_id班组编号intname姓名chara
46、ge年龄intage=intworkers update_workers update 配置说明:xml的段说明do_id一个.段的唯一标识,前台查询页面的form表单以后简称form表单中必须显式地指定do_id。description用来描述该操作的,对操作没影响。dtype指定为Tidid员工号chartrue是数据库中的字段名是字段的中文名称,无实际用途是指数据库中该字段的类型,支持char,datetime,text,df,numeric,double,int,long表示该字段是否为主键段可为多个,要修改数据中哪些字段就需要定义对应的注意当本字段为动态字段时候,本字段的名字必须以_
47、df结尾,且type必须为df,一般来说动态字段不建议作为主键。如果从form表单传入的该字段的值为_NULL_,那么不修改该字段的内容。id对应的是前台页面中form表单的字段名,如果没有id那么使用code。condition用于构造更新或删除操作的条件,参见query_config中的描述。additional_con在SQL语句中直接附加条件statement数据库修改的对象即表名ackjspLQuery在执行后跳转到所定义的页面显示相关结果topjsp存放向LQuery发起操作请求的页面forward条件跳转,参见query_config中的描述。文件操作什么是文件操作?LQuery
48、支持的文件操作有读取和修改,读取支持的文件格式有两种,第一种:以某个分隔符分隔的多行文本文件如下:111,2222,2333,3222,aaa,bbb,122,2222,2333,3222,aaa,bbb,133,2222,2333,3222,aaa,bbb,第二种:以段为单位的多行文本文件如下:totalnumber=500id=1name=张三age=26id=2name=李四age=30目前LQuery支持第二种格式的修改操作。fLQuery通过配置f实现以上格式的文件操作的。fo样式如下:fo_workers读取员工信息R,id员工号name姓名age年龄 autoAckMng /do
49、/cust_add_batch2.jsp /do/cust_add_batch.jsp 配置说明:f说明fo_id一个.段的唯一标识,前台查询页面的form表单以后简称form表单中必须显式地指定fo_id。description用来描述该操作的,对操作没影响。ftypeR代表以上描述的第一种文件格式R2代表以上描述的第二种文件格式delimiter分割符,当ftype=R时候有效postFileExecuter文件读取完了之后交由postFileExecuter指定的类再处理一次id员工号field段当ftype=R时候才有效。设置由分割符分割下的各个字段对应的名称是字段的中文名称,无实际用
50、途段可为多个,要修改数据中哪些字段就需要定义对应的 total numbersegment段当ftype=R2时候才有效。用以表示如下的格式:totalnumber=500indexId表示该段的名字code表示该段以下的字段名字,可以写一个或多个ackjspLQuery在执行后跳转到所定义的页面显示相关结果topjsp存放向LQuery发起操作请求的页面forward条件跳转,参见query_config中的描述。实例讲解 建立例如数据库 在vr.mdb文件中创立一个名为workers的表。点击新建,选择设计视图输入各个字段的名称和数据类型这里依次输入id类型:文本,长度:10,name类型
51、:文本,长度:20,team_id类型:数字,sex类型:文本,长度:2,wages类型:数字 关闭新建表并且命名为workers.ers就建立好了,如下列图:再往该表中参加一些模拟数据。 通过表单按条件明细查询配置文件query_workers.xmlquery_workerssample例子Vid=idcharname=wrk_namecharsex=sexcharselect * from workersid desc manu/sample/query_workers_ack.jsp请求页面:发送条件查询的JSP页面代码为:条件查询form name=form1 method=post
52、 action=/queryAck target=mainFrame 姓名为:!-注释:wrk_name作为输入的条件相将于query_config.xml中的中指定的或对应 -员工号为:!-注释:id作为输入的条件相将于query_config.xml中的中指定的或对应 -应答页面:接受查询结果并显示结果的JSP页面为query_workers_ack.jsp:n scope=session/查询应答页面 员工号姓名性别工资%MyHashMaphp=null; for(int i=0;i 通过API调用按明细查询,内容同 。详细接口说明参见章节。API调用是指在JSP页面内嵌JAVA代码直接
53、调用LQuery的功能,例如程序为query_workers_api.jsp:API 性别为男的员工 ID姓名性别工资% for(int i=0;i 增加一个员工配置do_workers.xmldo_workers应用例如Tidididchartruenamewrk_namenamecharsexsexsexcharwageswageswagescharid=charworkers add_workers /sample/query_workers_api.jsp /sample/query_workers_api.jsp请求页面:负责采集相关信息,JSP页面代码为add:LCallform
54、method=post name=form1 action=/doAck target=mainFrame ID姓名性别工资!-注释:以下四个输入项接收用户的输入值,分别do_config.xml中的下的或对应 -应答页面:根据do_config.xml的配置,直接使用query_wo显示所有结果。 批量增加员工配置请求页面:负责批量采集相关信息,JSP页面代码为add_workers_batch.jsp:LCallform method=post name=form1 action=/doAck target=mainFrame ID姓名性别工资!-注释:以下四个输入项接收用户的输入值,因为
55、有多个记录被参加,所以后面以_+数字表示不同的行数,分别do_config.xml中的下的或对应 - 应答页面:根据xml的配置,直接使用显示所有结果。 修改或删除员工信息配置请求页面:先从数据库中取出id为2的员工信息并显示在页面,待修改后提交给LQuery进行修改,JSP页面代码为edit:LCallfunction fun_save()/删除和保存只需修改action的值,action为保存字段,不同的action对应不同的SQL数据库操作。/indexId为保存字段,代表要修改的记录的主键字段的值document.form1.indexId.value=document.form1.i
56、d.value;.value=updateByIndexField;document.form1.submit();function fun_delete()document.form1.indexId.value=document.form1.id.value;document.form1.action.value=delByIndexField;document.form1.submit();form name=form1 method=post action=/doAck 性别姓名性别工资input name=wrk_name id=wrk_name size=22 value=/inp
57、ut name=sex id=sex size=22 value=/input name=wages id=wages size=22 value=/input type=hidden name=id value= 应答页面:根据的配置,直接使用显示所有结果。 文件装载配置fo_config.xml,向f段:fo_workers例如R,id员工号name姓名sex性别wages薪水 /sample/fo_workers_ack.jsp对应的文件内容为:100,王1,男,1000101,王2,男,1000102,王3,男,1000103,王4,男,1000请求页面:先从该页面选择要读取的文件,确
58、认后提交给LQuery进行文件读取,JSP页面代码为fo:文件装载form name=form_file method=post action=/foAck target=mainFrame 应答页面:根据fo_config.xml的配置,使用显示文件的内容文件装载% if(request.getParameter(fo_id)!=null)MyHashMap hp=null;/注释:取得所有文件的读取结果的集合ArrayList allFile=(ArrayList)dataBean.getData(ArrayList);/注释:集合中的第一个子集合存放第一个文件查询结果的数据ArrayLi
59、st oneFile=(ArrayList)allFile.get(0);for(int j=0;j 构造选择下拉框一般来说,表单中的下拉框适合于业务代码的选择比方:1代表一班,2代表二班。以下例子构造一个班组的代码表,并在页面产生选择下拉框。_team的表。点击新建,选择设计视图输入各个字段的名称和数据类型这里依次输入team_id类型:数字,team_name类型:文本,长度:20关闭新建表并且命名为workers_team._team就建立好了,如下列图:再往该表中参加一些模拟数据。配置query_workers_team.xml,用以查询workers_team表的班ID及班名。que
60、ry_workers_team例如查询teamVselect * from workers_teamteam_id manu/sample/query_workers_team_ack.jsp2. 请求页面 直接在sample.jsp中添加如下链接即可: a href=/queryAck?query_id=query_workers_team构造选择下拉框 3. 应答页面:接受查询结果并显示结果的JSP页面为query_workers_ team_ack.jsp:查询应答页面 班组: 所有%for(int i=0;iOPTION value= 构造选择下拉框(include方式)以包含incl
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2024年影视众筹投资合同3篇
- 2024年度碎石市场分析与采购合同2篇
- 2024年度商业秘密保护与竞业限制合同范本3篇
- 2024年度影视制作转包合同的制作流程与分成模式3篇
- 2024年寄卖商家入驻协议3篇
- 2024年庭院租赁标准化协议版B版
- 2024年度社区团购配送承包运营合同3篇
- 2024年工厂锅炉维护服务合同3篇
- 2024年度苗木种植与生态旅游基础设施建设合作合同3篇
- 2024年度人工智能教育设备采购合同
- 有机化学chapter4导向基引导
- 教师口语艺术学习通超星课后章节答案期末考试题库2023年
- 同济大学信纸
- 计算机期末大作业
- huawei te30电视终端安装配置与操作
- 六年级上专题复习题及知识归纳(分数乘除、比、百分数应用、简便运算、解方程)
- 土力学与基础工程复习题及答案
- 购物中心运营管理
- 血液透析用留置针在自体动静脉内瘘中的应用新进展
- 人体器官捐献工作经验总结怎么写
- Zarit照顾者负担量表
评论
0/150
提交评论