仓酷云

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 448|回复: 8
打印 上一主题 下一主题

[学习教程] JAVA网站制作之实例代码解说Java毗连Oracle数据库的各...

[复制链接]
分手快乐 该用户已被删除
跳转到指定楼层
楼主
发表于 2015-1-18 11:17:52 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
Java到底会发战成什么样,让我们拭目以待吧,我始终坚信着java会更好。以上都是俺个人看法,欢迎大家一起交流.oracle|数据|数据库java与oracle的接口:
  在数据库中运转JAVA能够说是ORACLE8i的最使人冲动的新特征。在你创立的利用ORACLE8i数据库的使用程序中,你可使用与JAVA有关的新特性,轻松的将程序公布到INTERNET或INTRANET上。
  
  MethodsforUsingJavainORACLE
  
  人人都晓得JAVA在跨平台开辟与INTERNET开辟中已对照盛行,ORACLE8i及今后的版本中都包括了对在数据库中运转JAVA的扩大撑持,这里有两种办法可使用:
  
  JDBC:与ODBC相似,JDBC供应了一个驱动接口使你能够在JAVA程序中会见数据库。注:JDBC驱动内嵌在数据库中假造机中。
  
  SQLJ:是一个JAVA预编译器,它能够将内嵌的SQL语句转化为JAVA语句.SQLJ的利用与运转机理与别的ORACLE的与编译器(如Pro*C,Pro*COBOL)相似。实践上,为了使我们抽象的记着SQLJ供应的功效,我们也能够间接将SQLJ更名为Pro*Java。
  
  将JAVA集成到数据库中是双向的。也就是说你能够在JAVA中挪用SQL与PL/SQL,也能够在SQL与PL/SQL中挪用JAVA。JAVA程序能够间接经由过程JDBC驱动挪用SQL与PL/SQL,反过去,你也能够在SQL与PL/SQL中间接挪用JAVA。在数据库中,JAVA定名空间间接映照到数据库形式的定名空间中,如许能够便利JAVA的存取与挪用。数据库同时供应扩大的DDL语句,经由过程这些语句,你能够象创立一个存储历程一样在数据中创立内嵌的JAVA程序。
  
  FeaturesofORACLEJDBCDrivers
  
  在ORACLE8i中有三品种型的JDBC驱动,他们都利用不异的syntax,APIs,andOracleextensions,以使JAVA代码在robustclients、Web-basedJavaapplets,andJavastoredprocedures之间坚持笨重天真:三品种型以下:
  1.JDBC OCI:此驱动相似于传统的ODBC驱动。由于它必要OracleCallInterfaceandNet8,以是它必要在运转利用此驱动的JAVA程序的呆板上安装客户端软件
  2.JDBCThin:这类驱动一样平常用在运转在WEB扫瞄器中的JAVA程序。它不是经由过程OCIorNet8,而是经由过程Javasockets举行通讯,因而不必要在利用JDBCThin的客户端呆板上安装客户端软件。
  3.JDBCKPRB:这类驱动由间接存储在数据库中的JAVA程序利用,如JavaStoredProcedures、triggers、DatabaseJSPs。Itusesthedefault/currentdatabasesessionandthusrequiresnoadditionaldatabaseusername,passwordorURL.
  
  怎样设置使JAVA能够经由过程OracleJDBCDrivers毗连到数据库:1.安装SunJDK. 
  2.修正PATH情况变量,使其指向JDK的bin目次
  3.设置CLASSPATH情况变量,使其指向准确的JDK的lib及oracle的JDBC接口。
  CLASSPATH=".;????"
  3.运转"javaCversion",考证java的版本。
  
  怎样在分歧的操纵体系上依据接口范例设置客户端:
  对JDBCTHIN接口:
  在windows与unix下的设置办法一样:
  1.依据jdk的版本,只必要将classesxx.zip拷贝到指定的目次,不必要安装OracleClient。在装完数据库后,该文件会在$ORACLE_HOME/jdbc/lib目次下。2.设置CLASSPATH,使其包括下面的classesxx.zip
  3.依据必要,拷贝oracle的别的zip文件并设置CLASSPATH
  
  对JDBCOCI接口:
  FowWindows:
  1.安装OracleClient.
  2.依据jdk的版本,设置CLASSPATH,使其包括准确的classesxx.zip
  3.依据必要设置CLASSPATH,使其指向Oracle的别的zip文件
  4.设置PATH,使其包括$ORACLE_HOMEin目次
  
  Forunix:
  1.安装OracleClient.
  2.依据jdk的版本,设置CLASSPATH,使其包括准确的classesxx.zip
  3.依据必要设置CLASSPATH,使其指向Oracle的别的zip文件
  4.设置LD_LIBRARY_PATH,使其包括$ORACLE_HOME/lib目次
  
  备注:
  classesxx.zip一样平常在ORACLE_HOMEjdbclib目次下。
  
    在ORACLE_HOMEjdbclib目次下的与OracleJDBCDrives驱动有关的文件的注释:
   -classes12.zip
    ClassesforusewithJDK1.2.x. ItcontainstheJDBCdriver
    classesexceptclassesnecessaryforNLSsupportinObjectand
    Collectiontypes.
  
   -nls_charset12.zip
    NLSclassesforusewithJDK1.2.x. Itcontainsclassesnecessary
    forNLSsupportinObjectandCollectiontypes.
  
   -classes12_g.zip
    Sameasclasses12.zip,exceptthatclasseswerecompiledwith
    "javac-g".
  
  JDBC毗连数据库的语法:
  JDBCTHIN:
  
  
  Connectionconn=
     DriverManager.getConnection
      ("jdbc:oracle:thin:@dlsun511:1521:ora1","scott","tiger");
                  |   |  |
             machine(ip@):port#:sid 
  
  JDBCOCI:
  
  Connectionconn=
     DriverManager.getConnection
      ("jdbc:oracle:oci8[9]:@RAC","scott","tiger");
                  |
                 NetService
  
  JDBCTHIN与JDBCTHIN对照:
  不异的地方:
     TheJDBCThin,JDBCOCI,andJDBCServerdriversallprovidethesamefunctionality. Theyallsupportthefollowingstandardsandfeatures:
      *JDBC2.0
      *PartialJDBC3.0(inJDBCdriverversion9.2)
      *thesamesyntaxandAPIs
      *thesameOracleextensions
  次要是JDBCOCI接口比JDBCTHIN接口效力高!
  
  HowdoesoneconnectwiththeJDBCThinDriver?
     ThetheJDBCthindriverprovidestheonlywaytoaccessOraclefromtheWeb(applets).ItissmallerandslowerthantheOCIdrivers.
  importjava.sql.*;
  
  classdbAccess{
   publicstaticvoidmain(Stringargs[])throwsSQLException
   {
    DriverManager.registerDriver(
     neworacle.jdbc.driver.OracleDriver()
    );
  
    Connectionconn=DriverManager.getConnection
     ("jdbc:oracle:thin:@dbhost:1521:ORA1","scott","tiger");
             //@machine:port:SID, userid, password
  
    Statementstmt=conn.createStatement();
    ResultSetrset=stmt.executeQuery(
     "selectBANNERfromSYS.V_$VERSION"
    );
    while(rset.next())
     System.out.println(rset.getString(1)); //Printcol1
    stmt.close();
   }
  }
  HowdoesoneconnectwiththeJDBCOCIDriver?
     OnemusthaveNet8(SQL*Net)installedandworkingbeforeattemptingtouseoneoftheOCIdrivers.
  
  
  importjava.sql.*;
  classdbAccess{
   publicstaticvoidmain(Stringargs[])throwsSQLException
   {
    try{
     Class.forName("oracle.jdbc.driver.OracleDriver");
    }catch(ClassNotFoundExceptione){
     e.printStackTrace();
    }
  
    Connectionconn=DriverManager.getConnection
     ("jdbc:oracle:oci8:@ORA1","scott","tiger");
         //oroci9@Service,userid, password
    Statementstmt=conn.createStatement();
    ResultSetrset=stmt.executeQuery(
     "selectBANNERfromSYS.V_$VERSION"
    );
    while(rset.next())
     System.out.println(rset.getString(1));//Printcol1
    stmt.close();
   }
  }
  HowdoesoneconnectwiththeJDBCKPRBDriver?
     Onecanobtainahandletothedefaultorcurrentconnection(KPRBdriver)bycallingtheOracleDriver.defaultConenction()method.PleasenotethatyoudonotneedtospecifyadatabaseURL,usernameorpasswordasyouarealreadyconnectedtoadatabasesession.Remembernottoclosethedefaultconnection.ClosingthedefaultconnectionmightthrowanexceptioninfuturereleasesofOracle.
  importjava.sql.*;
  
  
  classdbAccess{
   publicstaticvoidmain(Stringargs[])throwsSQLException
   {
    Connectionconn=(new
     oracle.jdbc.driver.OracleDriver()).defaultConnection();
  
    Statementstmt=conn.createStatement();
    ResultSetrset=stmt.executeQuery(
     "selectBANNERfromSYS.V_$VERSION"
    );
在性能方面,在windows平台下,.net可能是占强项,要是把.net放在sun开发的操作系统上去运行呢?根本就运行不了,.net对其它操作系统的支持也很弱,性能也可能比不上java。
admin 该用户已被删除
沙发
发表于 2015-1-20 19:46:43 | 只看该作者
关于设计模式的资料,还是向大家推荐banq的网站 [url]http://www.ckuyun.com/[/url],他把GOF的23种模式以通俗易懂的方式诠释出来,纯Java描述,真是经典中的经典。
简单生活 该用户已被删除
板凳
发表于 2015-1-26 17:24:05 | 只看该作者
一般学编程语言都是从C语开始学的,我也不例外,但还是可能不学过程语言而直接学面向对象语言的,你是刚接触语言,还是从C开始学比较好,基础会很深点,如果你直接学习JAVA也能上手,一般大家在学语言的时候都记一些语言的关键词,常有的包和接口等。再去做逻辑代码的编写,以后的学习过程都是从逻辑代码编写中提升的,所以这方面都是经验积累的。你要开始学习就从
只想知道 该用户已被删除
地板
发表于 2015-2-4 17:28:56 | 只看该作者
Pet Store.(宠物店)是SUN公司为了演示其J2EE编程规范而推出的开放源码的程序,应该很具有权威性,想学J2EE和EJB的朋友不要 错过了。
深爱那片海 该用户已被删除
5#
发表于 2015-2-10 04:36:32 | 只看该作者
自从Sun推出Java以来,就力图使之无所不包,所以Java发展到现在,按应用来分主要分为三大块:J2SE,J2ME和J2EE,这也就是Sun ONE(Open Net Environment)体系。J2SE就是Java2的标准版,主要用于桌面应用软件的编程;J2ME主要应用于嵌入是系统开发,如手机和PDA的编程;J2EE是Java2的企业版,主要用于分布式的网络程序的开发,如电子商务网站和ERP系统。
分手快乐 该用户已被删除
6#
 楼主| 发表于 2015-2-21 06:11:42 | 只看该作者
有时间再研究一下MVC结构(把Model-View-Control分离开的设计思想)
小魔女 该用户已被删除
7#
发表于 2015-3-6 19:40:54 | 只看该作者
Java 不同于一般的编译执行计算机语言和解释执行计算机语言。它首先将源代码编译成二进制字节码(bytecode),然后依赖各种不同平台上的虚拟机来解释执行字节码。从而实现了“一次编译、到处执行”的跨平台特性。
愤怒的大鸟 该用户已被删除
8#
发表于 2015-3-13 07:08:18 | 只看该作者
Sun公司看见Oak在互联网上应用的前景,于是改造了Oak,于1995年5月以Java的名称正式发布。Java伴随着互联网的迅猛发展而发展,逐渐成为重要的网络编程语言。
精灵巫婆 该用户已被删除
9#
发表于 2015-3-20 15:50:45 | 只看该作者
还好,SUN提供了Javabean可以把你的JSP中的 Java代码封装起来,便于调用也便于重用。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|仓酷云 鄂ICP备14007578号-2

GMT+8, 2024-6-26 19:19

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表