变相怪杰 发表于 2015-1-18 11:28:29

来看座谈Java数据库存取手艺

你通过从书的数量和开发周期及运行速度来证明:net网页编程和ruby要比java简单。
IT手艺一日千里,新手艺的呈现使人琳琅满目,仿佛每天都在发生着新名词。不外归根结柢IT所要完成的代价不过乎数据搜集,然后再以客户但愿的情势展现给客户罢了。因而数据存取手艺也就成了一个永久的话题。而在Java这个开放的天下里,数据库存取手艺是八门五花,品种单一。我们也来侃侃Java天下里支流的数据库存取手艺。
起首列出好汉榜
1.JDBC间接会见数据库
2.EJBentitybean.
3.JDO手艺。
4.第三方O/R工具,如今朝年夜红年夜紫的Hibernate, 别的如Castor, Toplink.
先说说这个汗青最为久长的JDBC吧。从Java出生的那天起,这位仁兄就入手下手登上汗青舞台了。Java能有明天这么风景,JDBC能够说是功不成末。一起走来,现在已经是JDBC3.0了。在没有JDBC的时分,会见数据库那是八仙过海,各显神通,各家数据库厂商都有本人的一套API, 苦就苦了开辟职员了。换了个数据库,谁人程序要改是改头换面。
JDBC标准的出台,向天下宣布今后有了会见干系数据库的尺度通用接口了。JDBC尺度取得了几近一切数据库厂商的撑持,仿佛还真难找到这么一个数据库,它是没有JDBC撑持的。JDBC标准一经公布,取得了绝后乐成,很快成为java会见数据库的尺度。JDBC的乐成在于它的标准一致尺度的接口,只必要把握尺度的SQL言语就能够会见各类分歧的数据库了。这类数据库间的可移植性和Java一向高喊的标语CompileOnce, Run everywhere鞭长莫及。JDBC明天仍是java会见数据库的基石,CMP、JDO、Hibernate说究竟只是更好的封装了JDBC, 供应了更加下层的更加壮大的接口罢了。然后说说JDBC间接会见数据库的体例来完成java 耐久性。
这类体例相对CMP来讲对照复杂间接,出格是关于小型使用非常便利。好比,我要写一个复杂的留言版程序,就没有需要session bean ,entity bean ,又是home接口又是远程接口,一层层调了吧。间接JDBC,写SQL语句了事。和别的耐久化手艺比拟,JDBC间接会见数据库的体例必要程序员费心的事变多了一些,你得本人体贴transaction, 本人体贴毗连池,你得写大批的getset办法,把SQLselect出来的值一个一个塞到你的javaobject中,大概把javaobject的值一个一个给掏出来,用SQL insert 到数据库,完整手动举行O/R mapping。为了克制这些弱点,CMP, JDO等等入手下手连续登上汗青舞台。
上面EJB退场,EJB作为Sun J2EE系统的中心部分,是Sun 所力推的企业级开辟的首选,而EJB entity 今朝仍旧是SunJ2EE白皮书所最为保举的java耐久化手艺。Entity Bean作为EJB标准的一部分,也是EJB标准内里最备受争议的一种手艺,它陪伴着EJB标准走过了风风雨雨几个年龄。今朝EJB3.0标准草案已出台,http://jcp.org/en/jsr/detail?id=220。
从家庭出身来看,EJB可谓是根正苗红,标准处于 JCP办理之下,具有超等奢华的专家构成员, Sun、IBM、Oracle、Borland、Bea、SAP、Jboss、Apache软件基金构造等等。单从这一点来看,选它作为企业级开辟,手艺撑持应当就无需忧虑了。固然向IBM, Bea等追求项目征询代价固然也不菲。从供应功效下去看,EJB entity履历了EJB1.0,EJB1.1,EJB2.0,功效也愈来愈完美了。包含了完美的事件撑持,EJBQL查询言语,通明的散布式会见等等。不外作为一个分量级手艺,entity bean的功能不太尽人意,这成为它备受争议的一个核心,不知在3.0今后这个情况会不会有所改善。
再有一个,它功效固然壮大,但是关于易用性来讲,其实不敢奉承,写一个最复杂的bean,也非得home接口,远程接口,要再加上2.0今后到场的当地接口,这么各式各样一年夜堆,足以让Java初学者望而生畏了。可是这一点在一段工夫内居然同样成了EJB功效壮大,手艺深邃的“左证”。记很多年之前刚卒业那阵,EJB使用在国际还对照少,公司里也没有人研讨Why EJB这个成绩,归正但凡用EJB的项目就是牛项目,用EJB的人就是牛人,分到EJB项目组的兄弟们走路都是仰面挺胸的,措辞都比我等还在JDBC, SQL的人要高两嗓门。EJB 手艺今朝占据着企业级使用的年夜部分山河,老迈位置短工夫内很难捍动。
上面重生代代表JDO盛大退场,JDO相对属于超年老选手, JDO1.0也不外是2002四月份才公布。2003蒲月份出台1.0.1, 今朝最新2.0草案已公布。就为这2.0,江湖上睁开的会商能够说是“血雨腥风”,两年夜兵团,JDO兵团和EJB兵团争得是不亦乐乎。有乐趣的无妨往瞧瞧,内里也不乏分量级人物。单从这一点来看,它能对EJB发生这么年夜的打击,足以申明了这个初生牛犊确有过人的地方。JDO的出生给java数据耐久性带来良多新特征,出格是它填补了EJB对OO编程的后天不敷,JDO供应了完整的OO撑持,承继,多态。JDO和 EJB比属于轻量级工具,无需容器撑持。不像EJB,要用你就非得整一个Weblogic, webSphere之类的。
JDO的复杂易用是最为人们所称道的,不必要你写大批无用的接口,不必要你承继甚么特别的类,独一所要做的就是对你的class文件做一下enhance。用了JDO,能够说我们的java程序这下真正OO了,我们无需再剖析数据库内里有啥表格了,存取都是以java object为对象了,一切数据库表格都是主动天生的。这一点能够说也是一个反动了。
在此之前,项目计划阶段,Database Schema计划能够说是个重头戏。而如今用JDO开辟,完整不必要数据库计划了。那你的Database Schema呢?就是你的Class啊,JDO会依据你的Class主动天生响应的数据库表格。一个字,爽!从数据库可移植性来看,JDO也是上风分明,就我利用过的Kodo 和 Genie来看,几个复杂使用程序换数据库时分除换一个JDBC driver, 换一下数据库URL,无需对程序做任何修改。 这一点对EJB 来讲又是处于优势。从家庭出生来看,JDO也是出身王谢,从一入手下手就处于JCP办理之下。从企业级撑持来看,它能够很好的和Session bean协同事情,关于企业级开辟,Session bean + JDO的体例是Sessionbean+entity体例的一个强无力合作敌手。固然有这么多长处,不外它的开展之路也非好事多磨,这不,往年蒲月份JDO2.0的投票,IBM、Oracle、Bea三年夜巨子同时投了否决票。不外略微一想,就能够了解,这并非JDO自己手艺有甚么严重缺点,而是JDO动到这些巨子们的奶酪了。
Bea、IBM做着业界最为出名使用服务器,weblogic和WebSphere,在EJB下面是投下了血本了,他们不克不及眼睁睁看着JDO来蚕食EJB市场。而Oracle, 还在卖着它本人的O/R工具Toplink, 看着JDO日渐壮大,他能不发急么。不外呢,公司再牛,他也挡不住汗青行进的车轮吧,终极JDO2.0的投票仍是以相对的票数(12:3)经由过程了。
另有别的散落江湖的Java耐久化手艺,如Hibernate、Castor、Toplink,他们固然没有皇家血缘,不外气力也是不容藐视。就拿Hibernate来讲,是javaworld评比出来的2003年度最好java数据存取工具,今朝能够说是年夜红年夜紫。而Castor和Toplink也算是汗青久长了,在JDO没有出生之前,它们就在江湖上混着了。今朝也占有着必定的市场。这些第三方的工具从功效下去说很相似于JDO, 只是各自的API互不不异。这也是厥后JDO标准的呼声愈来愈高的一个缘故原由吧。这些第三方O/R mapping工具能在江湖上存身,也的确都有各自过人的地方。如Hibernate金字招牌就是Open Source,撑持几近世面上所能看到得尽年夜部分数据库,而且文档也十分完全。Toplink么,可谓汗青久长,又榜着Oracle这棵年夜树。今朝来看,这些工具也占有着java数据库存取的不小市场。团体以为,跟着JDO标准的不段完美,JDO产物的提高,这一部分职员大概会在今后垂垂加入汗青舞台。不外从Hibernate今朝方兴未艾的气概来看,仿佛说这句话还为时过早。
关于这些手艺好坏之争从它们方才出身那天起历来就没有中断过,而各家各派也历来没有可以压服过对方。关于我们使用开辟者而言,撇开使用地道来争辩手艺好坏并没有多粗心义。仍是俗语说的好,没有最好的,只要最符合的。我们可以在做开辟的时分可以选择一个最符合于本人使用的手艺,那就充足了。总的来讲,JDBC面向RDBMS,对照合适干系数据库形式驱动的使用,比方统计表格数据,天生报表之类的使用。EJB 手艺以J2EE使用服务器为中央,假如你的使用的确必要天真的可声明的事件界限,必要撑持年夜容量的会见和不中断的服务,必要使用服务器的集群,那末选EJB吧。JDO则面向对象,关于以域对象为中央的使用,包括图,树范型的使用,JDO是首选。

还是要自己一点一点写代码,然后编译,改错再编译好那。还有最重要的是.net网页编程的编译环境非常好,你甚是不需要了解太多工具,对于简单的系统,你可以之了解一些语法就哦了。

不帅 发表于 2015-1-19 06:01:15

那么我书也看了,程序也做了,别人问我的问题我都能解决了,是不是就成为高手了呢?当然没那么简单,这只是万里长征走完了第一步。不信?那你出去接一个项目,你知道怎么下手吗,你知道怎么设计吗,你知道怎么组织人员进行开发吗?你现在脑子里除了一些散乱的代码之外,可能再没有别的东西了吧!

变相怪杰 发表于 2015-1-24 08:07:03

在全球云计算和移动互联网的产业环境下,Java更具备了显著优势和广阔前景。

金色的骷髅 发表于 2015-1-26 23:24:49

接着就是EJB了,EJB就是Enterprise JavaBean, 看名字好象它是Javabean,可是它和Javabean还是有区别的。它是一个体系结构,你可以搭建更安全、更稳定的企业应用。它的大量代码已由中间件(也就是我们常听到的 Weblogic,Websphere这些J2EE服务器)完成了,所以我们要做的程序代码量很少,大部分工作都在设计和配置中间件上。

小妖女 发表于 2015-2-4 21:28:44

学Java必读的两个开源程序就是Jive和Pet Store.。 Jive是国外一个非常著名的BBS程序,完全开放源码。论坛的设计采用了很多先进的技术,如Cache、用户认证、Filter、XML等,而且论坛完全屏蔽了对数据库的访问,可以很轻易的在不同数据库中移植。论坛还有方便的安装和管理程序,这是我们平时编程时容易忽略的一部份(中国程序员一般只注重编程的技术含量,却完全不考虑用户的感受,这就是我们与国外软件的差距所在)。

若相依 发表于 2015-2-7 20:03:29

Sun公司看见Oak在互联网上应用的前景,于是改造了Oak,于1995年5月以Java的名称正式发布。Java伴随着互联网的迅猛发展而发展,逐渐成为重要的网络编程语言。

分手快乐 发表于 2015-2-23 09:32:55

是一种为 Internet发展的计算机语言

愤怒的大鸟 发表于 2015-2-28 23:03:19

J2SE开发桌面应用软件比起 VC,VB,DEPHI这些传统开发语言来说,优势好象并不明显。J2ME对于初学者来说,好象又有点深奥,而且一般开发者很难有开发环境。

冷月葬花魂 发表于 2015-3-9 01:37:53

你现在最缺的是实际的工作经验,而不是书本上那些凭空想出来的程序。

谁可相欹 发表于 2015-3-16 19:45:59

Java 编程语言的风格十分接近C、C++语言。

简单生活 发表于 2015-3-22 23:59:39

J2SE开发桌面应用软件比起 VC,VB,DEPHI这些传统开发语言来说,优势好象并不明显。J2ME对于初学者来说,好象又有点深奥,而且一般开发者很难有开发环境。
页: [1]
查看完整版本: 来看座谈Java数据库存取手艺