JAVA网页编程之JDBC罕见成绩 -来自sun论坛
为什么外国人还要写那些框架进行代码封装,他们不就是为了别人使用时可以更简单么!如果要达到一个企业级项目的不用框架是很难的。小一些的项目还行,大的光是MVC模式的设计的编码量就够大的了。还有性能方面,单轮windows,这个工具是微软写的,。成绩JDBC罕见成绩
目次
甚么是JDBC3.0API?
JDBC-ODBCBridge是不是撑持JDBC3.0API中的新特征?
JDBC-ODBCBridge是不是能够与applet一同利用?
我如何入手下手调试与JDBCAPI有关的成绩?
我怎样可使用JDBCAPI经由过程收集会见像MicrosoftAccess如许的桌面数据库?
有哪些可用的撑持JDBC手艺的驱动程序?
有哪些可用的JDBCAPI文档?
是不是有不成与JDBC-ODBCBridge一同事情的ODBC驱动程序?
甚么会引发“Nosuitabledriver”(没有符合的驱动程序)毛病?
为何不克不及找到java.sql.DriverManager类?
我怎样一次检索一整行数据,而不针对每列都挪用一次ResultSet.getXXX办法?
为何ODBC驱动程序办理器会前往”DatasourcenamenotfoundandnodefaultdriverspecifiedVendor:0”(数据源称号没有找到而且没有默许的驱动程序指定供给商:0)?
是不是一切必要的JDBC驱动程序都将创立到JDK的数据库部分的毗连?
JDBC-ODBCBridge是多线程的吗?
JDBC-ODBCBridge是不是在每一个毗连中撑持多个并发的翻开语句?
当next办法事情时,我为何不克不及挪用ResultSet办法afterLast和beforeFirst?
我怎样能够检索一个String或其他对象范例,而不必每次创立一个新对象?
在JDBCAPI中有一个办法getColumnCount。是不是有相似的办法来查找了局会合的行数?
我想下载Java2SDK,StandardEdition(之前的JDK1.2)的JDBC-ODBCBridge。我是JDBCAPI的初学者,我想从Bridge入手下手。我该怎样做?
假如我利用JDBCAPI,我有需要利用ODBC安排(ODBCunderneath)吗?
一旦有了Sun的Java2SDK,StandardEdition,毗连数据库还必要做其他甚么吗?
1.甚么是JDBC3.0API?
JDBC3.0API是JDBCAPI的最初更新。它包括了很多特征,包含可转动的了局集和SQL:1999数据范例。
回到页首
2.JDBC-ODBCBridge是不是撑持JDBC3.0API中的新特征?
JDBC-ODBCBridge供应了JDBC3.0API的无限子集。
回到页首
3.JDBC-ODBCBridge是不是能够与applet一同利用?
运转于扫瞄器(好比NetscapeNavigator)中的不受信托的applet不同意利用JDBC-ODBCBridge。JDBC-ODBCBridge不同意不受信托的代码出于平安方面的思索而挪用它。这是好的方面,由于它标明由扫瞄器下载的不受信托applet不会经由过程挪用ODBC往返避Java平安。记着ODBC是本机代码,以是一旦挪用ODBC,Java编程言语就不克不及包管平安抵触不会产生。另外一方面,PureJavaJDBC驱动程序与applet一同事情得很好。它们是完整能够下载的,并且不请求任何的客户端设置。
最初,我想提一下的是,能够将JDBC-ODBCBridge与applet一同利用,由于applet扫瞄器假定applet是受信托的,因而,applet会在applet扫瞄器中运转。一般封闭applet平安是伤害的,但在某些经由把持的场所,好比关于只在平安Intranet情况中利用的applet,它多是符合的。记着假如您选择这个选项,就会碰着告诫,一有大概制止平安成绩,就利用全Java(all-Java)JDBC驱动程序。
回到页首
4.我如何入手下手调试与JDBCAPI有关的成绩?
找出JDBC挪用正在做甚么的一个好的举措是启用JDBC跟踪。JDBC跟踪包括举动的具体列表,这些举动产生在与JDBC操纵有关的体系中。
假如您利用DriverManager工具包来创立数据库毗连,就利用DriverManager.setLogWriter办法来启用JDBC操纵的跟踪。假如您利用DataSource对象来猎取毗连,就利用DataSource.setLogWriter办法来启用跟踪。(关于会合毗连,您利用ConnectionPoolDataSource.setLogWriter办法;关于介入散布式事件的毗连,利用XADataSource.setLogWriter办法。)
回到页首
5.我怎样可使用JDBCAPI经由过程收集会见像MicrosoftAccess如许的桌面数据库?
今朝多半桌面数据库请求利用ODBC安排的JDBC办理计划。这是由于这些数据库产物的供给商还没有完成全JavaJDBC驱动程序。
最好举措是利用撑持想用的ODBC和数据库的贸易JDBC驱动程序。拜见JDBC驱动程序页面,猎取可用的JDBC驱动程序列表。
来自SunJavaSoftware的JDBC-ODBCBridge没有独自供应对桌面数据库的会见。JDBC-ODBCBridge将ODBC作为当地DLL加载,并且针对桌面数据库(如Access)的典范ODBC驱动器不在收集上。不外,JDBC-ODBCBridge能够与RMI-JDBCBridge一同利用,以便经由过程收集会见像Access如许的数据库。这类RMI-JDBC-ODBC办理计划是收费的。
回到页首
6.有哪些可用的撑持JDBC手艺的驱动程序?
参阅有关撑持JDBC手艺驱动程序的Web页,猎取以后可用的驱动程序列表。
回到页首
7.有哪些可用的JDBCAPI文档?
参阅JDBC手艺主页,该页面中有一些链接指向有关JDBC手艺的信息。这个页面链接到有关特征和长处的信息、一系列新特征、有关进门先容的一节、在线教程和有关驱动程序请求的一节等信息,它还链接到标准和javadoc文档。
回到页首
8.是不是有不成与JDBC-ODBCBridge一同事情的ODBC驱动程序?
多半ODBC2.0驱动程序应该与Bridge一同事情。因为ODBC驱动程序之间在功效上有一些区分,因而Bridge的功效大概会遭到影响。Bridge与盛行的PC数据库一同事情,好比MicrosoftAccess和FoxPro。
回到页首
9.甚么会引发“Nosuitabledriver”(没有符合的驱动程序)毛病?
在挪用DriverManager.getConnection办法时代,常常会呈现“Nosuitabledriver”的毛病。缘故原由多是在挪用getConnection办法之前,加载符合的JDBC驱动程序失利,大概它大概正在指定一个不法的JDBCURL——一个不被JDBC驱动程序辨认的URL。最好的举措是反省JDBC驱动程序的文档或接洽您的JDBC驱动程序供给商,条件是您嫌疑正在指定不被JDBC驱动程序辨认的URL。
别的,当您正在利用JDBC-ODBCBridge时,假如不克不及加载Bridge所需的一个或多个共享库,这类毛病便可能产生。假如您以为这是缘故原由地点,就反省您的设置,以确保Bridge可以会见共享库。
回到页首
10.为何不克不及找到java.sql.DriverManager类?
这个成绩多是因为在撑持JDK1.0.2的扫瞄器(如NetscapeNavigator3.0)中运转JDBCapplet引发的。JDK1.0.2不包括JDBCAPI,因而在扫瞄器中运转的Java假造机一般不克不及找到DriverManager类。
这里有一个办理计划,它不请求在Web客户端上做任何附加的设置。记着,出于平安方面的思索,java.*包中的类不克不及由多半扫瞄器下载。因而,很多全Java驱动程序供给商供应了分歧版本的java.sql.*类,并将它们定名为jdbc.sql.*,并且也一同供应了利用了这些修正后的类的驱动程序版本。假如在applet代码中导进jdbc.sql.*而不是java.sql.*,并在applet的基础代码(codebase)中增加由JDBC驱动程序供给商供应的jdbc.sql.*类,那末applet所需的一切JDBC类就能够在运转时由扫瞄器下载,包含DriverManager类。
这个办理计划将使得applet可以在撑持JDK1.0.2的任何客户端扫瞄器中事情。applet也能够在撑持JDK1.1的扫瞄器中事情,不外出于功能方面的思索,大概想切换到JDK1.1类。也请记着,这里刻画的办理计划只是一个例子,其他的办理计划也是大概的。
回到页首
11.我怎样一次检索一整行数据,而不是针对每列都挪用一次ResultSet.getXXX办法?
ResultSet.getXXX办法是从ResultSet对象中检索数据的唯一办法,这标明必需对行中的每列收回一个挪用。但是这不年夜多是招致功能成绩的缘故原由地点,由于很丢脸到,在任何场所中,怎样提取一列,而不必最少开支一次函数挪用。我们接待开辟职员供应有关本主题的信息。
回到页首
12.为何ODBC驱动程序办理器会前往“DatasourcenamenotfoundandnodefaultdriverspecifiedVendor:0”(数据源称号没有找到而且没有默许的驱动程序指定供给商:0)?
在实验利用Bridge毗连到数据库时代,这类范例的毛病便可能产生。起首,请注重毛病是来自ODBC驱动程序办理器。这标明Bridge——一般的ODBC客户端——已乐成挪用ODBC,因而成绩不是因为当地库不存在而招致的。在这类情况下,它标明毛病是因为以下现实而招致的:必要在客户盘算机上设置ODBCDSN(数据源称号)。开辟职员常常会健忘如许做,以为Bridge应当会找到远程服务器盘算机上设置的DSN。
回到页首
13.是不是一切必要的JDBC驱动程序都将创立到JDK的数据库部分的毗连?
不是。除JDBC-ODBCBridge外,没有任何的撑持JDBC手艺的驱动程序与JDK1.1.x或Java2Platform版本绑缚在一同。因而,开辟职员必要猎取驱动程序并安装它,然后才能够毗连到数据库。我们正在思索在未来绑缚撑持JDBC手艺的驱动程序。
回到页首
14.JDBC-ODBCBridge是多线程的吗?
不是。JDBC-ODBCBridge不撑持来自分歧线程的并发会见。JDBC-ODBCBridge利用同步办法来序列化它对ODBC的一切挪用。多线程Java程序可使用Bridge,但它们不克不及失掉多线程的长处。别的,逝世锁大概在数据库持有的锁和Bridge利用的旌旗灯号(semaphore)之间产生。我们正思索未来删除同步办法。本来增加它们的目标是,使得关于编写利用单线程ODBC驱动程序的Java程序的职员来讲,事变变得复杂了。
回到页首
15.JDBC-ODBCBridge是不是在每一个毗连中撑持多个并发的翻开语句?
不是。当利用JDBC-ODBCBridge时,每一个毗连只能翻开一个Statement对象。
回到页首
16.当next办法事情时,我为何不克不及挪用ResultSet办法afterLast和beforeFirst?
您大概正在利用针对JDBC1.0API完成的驱动程序。必要晋级到JDBC2.0驱动程序,它完成了可转动了局集。同时包管了代码已创立可转动了局集,而且正在利用的DBMS撑持它们。
回到页首
17.我怎样能够检索String或其他对象范例,而不必每次创立一个新的对象?
不用要地创立潜伏的大批对象(数百万),并对它们举行渣滓搜集处置,这才大概真正影响到功能。上面这类办法大概会对照好:利用JDBCAPI,而不是总分派新的对象来检索像字符串如许的数据。
我们正在研讨这个主题,断定在某些中央是不是应当改良JDBCAPI。今后大概会有这方面的信息。别的,假如您有关于这个成绩的任何批评,也请发送给我们。
回到页首
18.在JDBCAPI中有一个办法getColumnCount。是不是有相似的办法来查找了局会合的行数?
没有,但查找行数是简单的。假如您正在利用可转动了局集rs,就能够挪用rs.last,然后挪用rs.getRow来查找rs中的行数。假如了局集是不成转动的,也能够经由过程在了局会合迭代来盘算行数,大概提交一个查询,在SELECT子句中加上COUNT列来获得行数。
回到页首
19.我想下载Java2SDK,StandardEdition(之前的JDK1.2)的JDBC-ODBCBridge。我是JDBCAPI的初学者,我想从Bridge入手下手。我该怎样做?
JDBC-ODBCBridge与Java2SDK,StandardEdition绑缚在一同,因而没有需要别的下载它。
回到页首
20.假如我利用JDBCAPI,我有需要利用ODBC安排(ODBCunderneath)吗?
没有需要,这只是很多大概的办理计划中的一种。我们保举利用纯撑持JavaJDBC手艺的驱动程序(范例3或4),以便获得Java编程言语和JDBCAPI的一切长处。
回到页首
21.一旦有了Sun的Java2SDK,StandardEdition,毗连数据库还必要做其他甚么吗?
仍必要取得并安装撑持JDBC手艺的驱动程序,而且它要撑持正在利用的数据库。有来自各类资本的很多驱动程序。也能够试着利用JDBC-ODBCBridge,条件是已创立了ODBC数据库毗连。Bridge与Java2SDK,StandardEdition一同供应,它自己不必要任何分外的安装。Bridge是一般的ODBC客户端。不外请注重,您应当将JDBC-ODBCBridge只用于实验原型,大概在没有可供利用的其他驱动程序时才用它。
回到页首
如果你学习的是市场营销,是销售,也许参加大课堂的学习会更合适,因为你的工作能力中有个基础就是搭建自己的人脉, 其实说这种话的人就如当年小日本号称“三个月拿下中国”一样大言不惭。不是Tomjava泼你冷水,你现在只是学到了Java的骨架,却还没有学到Java的精髓。接下来你得研究设计模式了。 Java自面世后就非常流行,发展迅速,对C++语言形成了有力冲击。Java 技术具有卓越的通用性、高效性、平台移植性和安全性,广泛应用于个人PC、数据中心、游戏控制台 Java自面世后就非常流行,发展迅速,对C++语言形成了有力冲击。Java 技术具有卓越的通用性、高效性、平台移植性和安全性,广泛应用于个人PC、数据中心、游戏控制台 另外编写和运行Java程序需要JDK(包括JRE),在sun的官方网站上有下载,thinking in java第三版用的JDK版本是1.4,现在流行的版本1.5(sun称作J2SE 5.0,汗),不过听说Bruce的TIJ第四版国外已经出来了,是专门为J2SE 5.0而写的。 当然你也可以参加一些开源项目,一方面可以提高自己,另一方面也是为中国软件事业做贡献嘛!开发者在互联网上用CVS合作开发,用QQ,MSN,E-mail讨论联系,天南海北的程序员分散在各地却同时开发同一个软件,是不是很有意思呢? 接着就是EJB了,EJB就是Enterprise JavaBean, 看名字好象它是Javabean,可是它和Javabean还是有区别的。它是一个体系结构,你可以搭建更安全、更稳定的企业应用。它的大量代码已由中间件(也就是我们常听到的 Weblogic,Websphere这些J2EE服务器)完成了,所以我们要做的程序代码量很少,大部分工作都在设计和配置中间件上。 我大二,Java也只学了一年,觉得还是看thinking in java好,有能力的话看英文原版(中文版翻的不怎么好),还能提高英文文档阅读能力。 你现在最缺的是实际的工作经验,而不是书本上那些凭空想出来的程序。 任职于太阳微系统的詹姆斯·高斯林等人于1990年代初开发Java语言的雏形,最初被命名为Oak,目标设置在家用电器等小型系统的程序语言 我大二,Java也只学了一年,觉得还是看thinking in java好,有能力的话看英文原版(中文版翻的不怎么好),还能提高英文文档阅读能力。 自从Sun推出Java以来,就力图使之无所不包,所以Java发展到现在,按应用来分主要分为三大块:J2SE,J2ME和J2EE,这也就是Sun ONE(Open Net Environment)体系。J2SE就是Java2的标准版,主要用于桌面应用软件的编程;J2ME主要应用于嵌入是系统开发,如手机和PDA的编程;J2EE是Java2的企业版,主要用于分布式的网络程序的开发,如电子商务网站和ERP系统。 你现在最缺的是实际的工作经验,而不是书本上那些凭空想出来的程序。 至于JDBC,就不用我多说了,你如果用java编过存取数据库的程序,就应该很熟悉。还有,如果你要用Java编发送电子邮件的程序,你就得看看Javamail 了。 Java自面世后就非常流行,发展迅速,对C++语言形成了有力冲击。Java 技术具有卓越的通用性、高效性、平台移植性和安全性,广泛应用于个人PC、数据中心、游戏控制台 多重继承(以接口取代)等特性,增加了垃圾回收器功能用于回收不再被引用的对象所占据的内存空间,使得程序员不用再为内存管理而担忧。在 Java 1.5 版本中,Java 又引入了泛型编程(Generic Programming)、类型安全的枚举、不定长参数和自动装/拆箱等语言特性。 Java语言支持Internet应用的开发,在基本的Java应用编程接口中有一个网络应用编程接口(java net),它提供了用于网络应用编程的类库,包括URL、URLConnection、Socket、ServerSocket等。Java的RMI(远程方法激活)机制也是开发分布式应用的重要手段。 关于设计模式的资料,还是向大家推荐banq的网站 http://www.jdon.com/,他把GOF的23种模式以通俗易懂的方式诠释出来,纯Java描述,真是经典中的经典。 Java是一个纯的面向对象的程序设计语言,它继承了 C++语言面向对象技术的核心。Java舍弃了C ++语言中容易引起错误的指针(以引用取代)、运算符重载(operator overloading) 有时间再研究一下MVC结构(把Model-View-Control分离开的设计思想)
页:
[1]
2