JAVA网站制作之关于在ORACLE下开辟JAVA的几个成绩
什么时候上述的三种开发工具能和三为一,什么时候java的竞争力才更强,才有机会拉拢更多的程序员投入到对java的开发上,因为到时的开发工具将会比.net的更简单。还有一点也很关键,什么时候java推出的jsf能成为真正意义上的标准。oracle|成绩我原本不再想写一些相似教程的文章,由于既然叫教程就要能历履历史的磨练,而关于我这类菜鸟级的程序计划者来讲仅喜好为所欲为地交换一些本人的履历。能够不成办法,有关层次地想到哪说到哪。可是有些成绩我又不克不及不出来讲分明,由于今朝网上的良多“教程”都在把初学者引向毛病,有些是作者团体了解的毛病,有些作者本人历来没有做过开辟却能写出一篇软件开辟的文章。他们只会做TRANSLATE,COPY,CUT这些操纵,最复杂的例子就是sun的JDK开辟文档中到今朝为止先容年夜对象(文件)存储的办法都是毛病的,但是说经由N(N>100)次的重写都没有人改正,由于厥后的人都只是COPY了一下,基本没有真的往做,只是把原作者换成本人的名字罢了。(尊敬声明:凡以AXMAN,超等菜鸟,诗剑墨客署名的文章除在CNJSP网站公布回绝任何网站转贴)
成绩一:如保加载JDBC驱动程序:
一般我们加载驱动程序有三个路子:
1)Class.forName(String)这想当于classLoader一个String指定的类,在装载时把该驱动程序的静态内容都初始化,实在这时候驱动程序类挪用了DriverManager.registerDriver(driver);办法
2)利用体系属性:System.getProperty().load(newFileInputStream("属性文件"));
在属性文件中指定jdbc.driver=drivername如许的优点是能够同时加载多个JDBC,换数据库时不必会见JAVA源代码,只是修正属性文件
3)间接registerDriver(driver)这类办法最牢靠,能够在任何情况下利用。
1)办法复杂,但MS的JVM不克不及准确初始化。好比利用IE时在APPLET中就不克不及利用,应当用3)的办法。但3)办法在天真性方面不如2),能够依据情况综合思索。
成绩二:年夜对象存储
一样平常来讲,年夜对象存储是把文件存到数据库中,固然也能够内存中的超年夜字符串。关于象图片如许的文件固然是用二进制存储,这里有良多误区,收集上的教程99%都是行欠亨的,连SUN本人的文档都一向毛病,固然毛病很小。按说二进制文件应当存为BLOB范例,但JBDC2其实不能间接对BLOB存进二进制文件,假如你如许做,会失掉一个IO而不是SQL非常,为此花了我近两个小时才弄分明。
假如要把一个二制文件存进ORACLE,用尺度的JDBC你就要用LONGROW范例:
createtabletb_file(namevarchar(20),detaillongrow);
然后
Filefile=newFile("aaa.gif");
intfileLength=(int)file.length();
InputStreamfin=newFileInputStream(file);
PreparedStatementpstmt=con.prepareStatement("insertintotb_filevalues(aaa.gif,?)");
pstmt.setBinaryStream(1,fin,fileLength);
pstmt.executeUpdate();
假如你必定要用BLOB存储,你就必需用ORACLE本人的办法:
createtabletb_file(namevarchar(20),detailBLOB);
con.setAutoCommit(false);
stmt.executeUpdate("insertintotb_filevalues(aaa.gif,empty_blob())");
上面必需SELECT失掉BLOB的对象再向里写:
rs=stmt.executeQuery("selectdetailfromtb_filewherename=aaa.gifforupfdate");
if(rs.next())
{
Blobblob=rs.getBlob(1);
BinaryOutputStreamout=((oracle.sql.BLOB)blob).getBinaryOutputStream();
byte[]b=newbyte[((oracle.sql.BLOB)blob).getBufferSize];
InputStreamfin=newFileInputStream(file);
intlen=0;
while((len=fin.read(b))!=-1)
out.write(b,0,len);
fin.close();
out.close();
con.commit();
}
一样读取数据你其实不能象LONGROW那样
InputStreamin=rs.getBinaryInputStream("detail");
而要
Blobblob=rs.getBlob("detail");
in=blob.getBinaryStream();
成绩三:可转动了局集
ORACLE明白申明不撑持了局集转动,那末我们用JDBC2失掉一个可转动的了局集就是同JDBC本人撑持的,就是说了局集要在内存中高度缓存,良多良多的开辟者都毛病地以为是数据库撑持的。只是他们没有真正查询大批行,假如真的查询大批行的话一定是逝世定了!!!!!!关于超大批行的数据,宁愿前往到它的笨办法也不要利用可转动了局集。
-------------------------------------
注:应作者请求,本文回绝任何网站转贴!
专门做了这个例子;而java的这个例子好像就是为了教学而写的,很多教学目的的例子是不考虑优化、性能的。 是一种使网页(Web Page)产生生动活泼画面的语言 是一种由美国SUN计算机公司(Sun Microsystems, Inc.)所研究而成的语言 你现在最缺的是实际的工作经验,而不是书本上那些凭空想出来的程序。 有时间再研究一下MVC结构(把Model-View-Control分离开的设计思想) 吧,现在很流行的Structs就是它的一种实现方式,不过Structs用起来实在是很繁,我们只要学习其精髓即可,我们完全可以设计自己的MVC结构。然后你再研究一下软件Refactoring (重构)和极限XP编程,相信你又会上一个台阶。 做完这些,你不如整理一下你的Java代码,把那些经典的程序和常见的应用整理出来,再精心打造一番,提高其重用性和可扩展性。你再找几个志同道合的朋友成立一个工作室吧 所以现在应用最广泛又最好学的就是J2EE了。 J2EE又包括许多组件,如Jsp,Servlet,JavaBean,EJB,JDBC,JavaMail等。要学习起来可不是一两天的事。那么又该如何学习J2EE呢?当然Java语法得先看一看的,I/O包,Util包,Lang包你都熟悉了吗?然后再从JSP学起。 设计模式是高级程序员真正掌握面向对象核心思想的必修课。设计模式并不是一种具体"技术",它讲述的是思想,它不仅仅展示了接口或抽象类在实际案例中的灵活应用和智慧 Java语言支持Internet应用的开发,在基本的Java应用编程接口中有一个网络应用编程接口(java net),它提供了用于网络应用编程的类库,包括URL、URLConnection、Socket、ServerSocket等。Java的RMI(远程方法激活)机制也是开发分布式应用的重要手段。 是一种由美国SUN计算机公司(Sun Microsystems, Inc.)所研究而成的语言 你现在最缺的是实际的工作经验,而不是书本上那些凭空想出来的程序。 吧,现在很流行的Structs就是它的一种实现方式,不过Structs用起来实在是很繁,我们只要学习其精髓即可,我们完全可以设计自己的MVC结构。然后你再研究一下软件Refactoring (重构)和极限XP编程,相信你又会上一个台阶。 做完这些,你不如整理一下你的Java代码,把那些经典的程序和常见的应用整理出来,再精心打造一番,提高其重用性和可扩展性。你再找几个志同道合的朋友成立一个工作室吧 Sun公司看见Oak在互联网上应用的前景,于是改造了Oak,于1995年5月以Java的名称正式发布。Java伴随着互联网的迅猛发展而发展,逐渐成为重要的网络编程语言。 不过,每次的执行编译后的字节码需要消耗一定的时间,这同时也在一定程度上降低了 Java 程序的运行效率。 有时间再研究一下MVC结构(把Model-View-Control分离开的设计思想) 是一种突破用户端机器环境和CPU Jive的资料在很多网站上都有,大家可以找来研究一下。相信你读完代码后,会有脱胎换骨的感觉。遗憾的是Jive从2.5以后就不再无条件的开放源代码,同时有licence限制。不过幸好还有中国一流的Java程序员关注它,外国人不开源了,中国人就不能开源吗?这里向大家推荐一个汉化的Jive版本—J道。Jive(J道版)是由中国Java界大名 鼎鼎的banq在Jive 2.1版本基础上改编而成, 全中文,增加了一些实用功能,如贴图,用户头像和用户资料查询等,而且有一个开发团队在不断升级。你可以访问banq的网站 如果你学过HTML,那么事情要好办的多,如果没有,那你快去补一补HTML基础吧。其实JSP中的Java语法也不多,它更象一个脚本语言,有点象ASP。 有时间再研究一下MVC结构(把Model-View-Control分离开的设计思想) 你就该学一学Servlet了。Servlet就是服务器端小程序,他负责生成发送给客户端的HTML文件。JSP在执行时,也是先转换成Servlet再运行的。虽说JSP理论上可以完全取代Servlet,这也是SUN推出JSP的本意,可是Servlet用来控制流程跳转还是挺方便的,也令程序更清晰。接下来你应该学习一下Javabean了,可能你早就看不管JSP在HTML中嵌Java代码的混乱方式了,这种方式跟ASP又有什么区别呢?
页:
[1]