JAVA网页编程之谈谈偶的通用数据库查询器开辟心得
首先第一点:jsp,servlet,javabean这些最基本的,嘿嘿,就算你是高手的话,在大行的企业级应用的话还是需要框架的,一个好的框架确实能构解决许多问题。数据|数据库|心得今朝,基于干系型数据库的使用体系各处都是,可否供应一个壮大的数据查询功效是这些体系好坏的一个主要考量目标。良多年夜型的数据库使用软件公司都有本人的查询器。好比用友、SAP等。可是它们的查询器只用于本身的体系。
偶一日闲来无事,突生开辟一通用东东玩玩的动机,隧有DataGetter查询器的出生。偶之计划为针对使用体系之一般用户,非我等之IT手艺职员也,故计划之时需假定用户不懂得基表布局,不懂得任何SQL语句。
奋战一月,终有小成,然不敢私躲,故借CSDN示之以众,若能对人有所启发,则幸莫年夜焉!
基础观点界说
营业对象:
已存于原始数据库的界说当中。在数据库中基表大抵能够分别为两类,一类是界说实体(对象)的,另外一类是用来界说实体(对象)间干系的。一类营业对象必定能找到对应的基表界说。基表中的每笔记录就代表一个详细的营业对象界说。
特性:
一个特性就反应某对象某方面的特征。特性具有经由过程对象干系举行传送和会聚的特征。特性分为广义特性和狭义特性。
广义特性:
一个广义特性是某对象的间接特征。原始数据库中的每基表的每一个营业字段都是特性,亦可称为基础特性。
狭义特性:
除广义特性外还包含某对象经由过程传送划定规矩和会聚划定规矩所失掉的一切特性和相干一切衍生特性。
传送划定规矩:
关于对象A和B,若其间的对象干系为n:1,则称B的特性能够被传送给A,便可间接视B的特性为A的特性。
会聚划定规矩:
关于对象A和B,若干系为1:n,则称B的特性可被会聚成A的特性。
衍生特性:由单行纪录中一个或多个特性经由必定流动的盘算而推上演的新特性为衍生特性,也称导出特性。该类特性和会聚特性一般都不间接存在于原始数据库中,而是要举行专门的编程来完成。因而可否很好的撑持这两种特性即是判别一个取数工具壮大与否的主要前提。
基于以上观点,可对用户取数举动实质作云云界说:是用户猎取存眷对象的存眷特性值的历程。好比某条约办理职员在某天必要某个条约的实行情形数据,详细包含条约签定日期、承包商称号、条约总金额、累计产生本钱、累计完成工程量、今年累计产生本钱、今年累计工程量等信息。在这个例子中,某个条约就成了用户的存眷对象,而条约签定日期等就成了该存眷对象的存眷特性。在这些特性中,条约签定日期、承包商称号、条约总金额就属于基础特性,而累计产生本钱、累计完成工程量、今年累计产生本钱、今年累计工程量属于衍生特性。
综上所述,我们能够晓得用户必要的特性大概在一个基表中,也有大概散落在分歧的基表中。这就是数据查询器开辟的关头和难点,而基于营业对象D特性办法的两层布局刚好是办理这个成绩的一个好举措。
以上是偶开辟DataGetter的实际基本。DataGetter对用户埋没了数据库的布局信息而以两层布局体例向用户间接展示营业对象和其一切营业特性。用户只需找到营业对象就可以猎取它一切相干的特性,而不必要思索它究竟散落在数据库的哪一个基表中。这年夜小气便了用户的取数。同时,软件还供应了可扩大的衍生存算办法库、会聚盘算办法库,用户如有新的特性必要,则只需依照划定在响应表中举行复杂挂号便可。若碰着对照特别的需求,可经由过程扩大相干办法库来满意必要。以下通该软件的先容来进一步申明基于营业对象-特性两层布局办法开辟数据查询器办法的实践事情道理。
先容
(1)体系框架图
(2)软件利用示例
演示假象场景:某信息体系包括一条约办理体系,该条约办理体系具有挂号条约基础信息、纪录条约每次付出单信息的功效。该体系的原始数据库基表布局以下。
某营业职员想猎取2003年签定的条约及实行的有关情形,详细内容为:条约代码、条约称号、条约签定日期、条约承包商称号、条约金额、条约累计付出金额。在如许的一个取数例子中,对比下面的基表能够晓得本次存眷对象为一切2002年签定的条约,而存眷特性中条约代码、条约称号、条约签定日期、条约累计付出金额为基础特性,条约承包商称号为
传送特性,而条约累计付出金额为会聚特性。这个查询请求的完成历程申明及图示见以下。
第一步:选择所存眷的对象种别,由于条约对象都在条约文件柜中因而选择条约文件柜便可。然后点击下一步。
第二步是选择所存眷的特性。必要注重的是用户必要的累计付出金额已呈现右边在特性列表中,这是由于事后在特性表中举行了挂号,故而用户只必要利用而不必要思索怎样往完成累计值的盘算。选择完成后点击下一步。
第三步是界说对象选择前提。可经由过程鼠标或间接在前提界说框中输出的体例来界说选择前提。
第四步是启动DataGetterSoftware取数引擎。本步操纵仅是点击完成键。一点便完成了取数引擎的启开工作。
第五步是检察取数了局并可对其举行别的操纵,本次案例的了局以下。DataGetterSoftware供应了在体系内举行了局检察和打印的功效,同时能将了局保留为TXT格局文件。使用此功效可在别的诸如EXCEL之类的表格处置软件中读取取数了局便于进一步的剖析、处置、打印等。
(3)DataGetterSoftware特性
1.接纳先辈的Java言语体例而成。
2.可撑持多种数据库。
3.终极用户的零数据库常识请求。
4.终极用户的零操纵培训。
5.终极用户的零用户编程。
6.可提出存在于多表中的相干数据。
7.取数速率快。
8.体系供应了可扩大的多交运算办法库(好比累计、均匀值等)。用户能够象猎取别的基础数据一样复杂的猎取多交运算了局数据而不必要利用运算函数的利用办法。
9.体系供应了可扩大的导出办法库(经由过程已有的数据天生新的成心义的数据,好比日期数据能够导出年份数据)。
10.体系供应了可扩大的干系运算办法库。
11.体系供应了可扩大的特性库。
12.体系可将数据提取了局存储为文本格局。以便满意用户将数据提取了局转进到EXCEL等公用表格处置软件当中完成进一步的处置、排版、打印等的必要。
13.可在体系中以EXCEL网格情势扫瞄提取了局。
14.体系供应了疾速打印提取了局的功效。
先说优点,首先和C,C++这些语言比起来,java很简单,去掉指针的java,非常好理解,自动垃圾回收机制也很好,自从JDK1.5推出以后,性能上又有了很大提高。 一直感觉JAVA很大,很杂,找不到学习方向,前两天在网上找到了这篇文章,感觉不错,给没有方向的我指了一个方向,先不管对不对,做下来再说。 是一种使用者不需花费很多时间学习的语言 那么我书也看了,程序也做了,别人问我的问题我都能解决了,是不是就成为高手了呢?当然没那么简单,这只是万里长征走完了第一步。不信?那你出去接一个项目,你知道怎么下手吗,你知道怎么设计吗,你知道怎么组织人员进行开发吗?你现在脑子里除了一些散乱的代码之外,可能再没有别的东西了吧! 是一种语言,用以产生「小应用程序(Applet(s)) 有时间再研究一下MVC结构(把Model-View-Control分离开的设计思想) 《JAVA语言程序设计》或《JAVA从入门到精通》这两本书开始学,等你编程有感觉的时候也可以回看一下。《JAVA读书笔记》这本书,因为讲的代码很多,也很容易看懂,涉及到面也到位。是你学习技术巩固的好书,学完后就看看《JAVA编程思想》这本书,找找一个自己写的代码跟书上的代码有什么不一样。 应用在电视机、电话、闹钟、烤面包机等家用电器的控制和通信。由于这些智能化家电的市场需求没有预期的高,Sun公司放弃了该项计划。随着1990年代互联网的发展 Pet Store.(宠物店)是SUN公司为了演示其J2EE编程规范而推出的开放源码的程序,应该很具有权威性,想学J2EE和EJB的朋友不要 错过了。 是一种简化的C++语言 是一种安全的语言,具有阻绝计算机病毒传输的功能 你快去找一份Java的编程工作来做吧(如果是在校学生可以去做兼职啊),在实践中提高自己,那才是最快的。不过你得祈祷在公司里碰到一个高手,而且他 还愿意不厌其烦地教你,这样好象有点难哦!还有一个办法就是读开放源码的程序了。我们知道开放源码大都出自高手,他们设计合理,考虑周到,再加上有广大的程序员参与,代码的价值自然是字字珠叽,铿锵有力(对不起,偶最近《金装四大才子》看多了)。 所以现在应用最广泛又最好学的就是J2EE了。 J2EE又包括许多组件,如Jsp,Servlet,JavaBean,EJB,JDBC,JavaMail等。要学习起来可不是一两天的事。那么又该如何学习J2EE呢?当然Java语法得先看一看的,I/O包,Util包,Lang包你都熟悉了吗?然后再从JSP学起。 是一种简化的C++语言 是一种安全的语言,具有阻绝计算机病毒传输的功能 Java 不同于一般的编译执行计算机语言和解释执行计算机语言。它首先将源代码编译成二进制字节码(bytecode),然后依赖各种不同平台上的虚拟机来解释执行字节码。从而实现了“一次编译、到处执行”的跨平台特性。 在全球云计算和移动互联网的产业环境下,Java更具备了显著优势和广阔前景。 还好,SUN提供了Javabean可以把你的JSP中的 Java代码封装起来,便于调用也便于重用。 象、泛型编程的特性,广泛应用于企业级Web应用开发和移动应用开发。 你一定会高兴地说,哈哈,原来成为Java高手就这么简单啊!记得Tomjava也曾碰到过一个项目经理,号称Java很简单,只要三个月就可以学会。 另外编写和运行Java程序需要JDK(包括JRE),在sun的官方网站上有下载,thinking in java第三版用的JDK版本是1.4,现在流行的版本1.5(sun称作J2SE 5.0,汗),不过听说Bruce的TIJ第四版国外已经出来了,是专门为J2SE 5.0而写的。
页:
[1]