爱飞 发表于 2015-1-18 11:42:16

JAVA网站制作之Java 中挪用oracle 的历程

java是一种面向对象的编程语言,优点是可移植性比较高,最初设计时就是本着一次编写到处执行设计的。可以开发各种应用程序和游戏,不过速度没有c++快,所以一般是不用java来编写应用程序和电脑游戏。oracle|历程example1:
/*
*ThissampleshowshowtocallaPL/SQLstoredprocedureusingtheSQL92
*syntax.SeealsotheothersamplePLSQL.java.
*/

importjava.sql.*;
importjava.io.*;

classPLSQLExample
{
publicstaticvoidmain(Stringargs[])
throwsSQLException,IOException
{
//Loadthedriver
DriverManager.registerDriver(neworacle.jdbc.driver.OracleDriver());

Stringurl="jdbc:oracle:oci8:@";
try{
Stringurl1=System.getProperty("JDBC_URL");
if(url1!=null)
url=url1;
}catch(Exceptione){
//Ifthereisanysecurityexception,ignoreit
//andusethedefault
}

//Connecttothedatabase
Connectionconn=
DriverManager.getConnection(url,"scott","tiger");

//Createastatement
Statementstmt=conn.createStatement();

//Createthestoredfunction
stmt.execute("createorreplacefunctionRAISESAL(nameCHAR,raiseNUMBER)returnNUMBERisbeginreturnraise+100000;end;");

//Closethestatement
stmt.close();

//PreparetocallthestoredprocedureRAISESAL.
//ThissampleusestheSQL92syntax
CallableStatementcstmt=conn.prepareCall("{?=callRAISESAL(?,?)}");

//Declarethatthefirst?isareturnvalueoftypeInt
cstmt.registerOutParameter(1,Types.INTEGER);

//WewanttoraiseLESLIEssalaryby20,000
cstmt.setString(2,"LESLIE");//Thenameargumentisthesecond?
cstmt.setInt(3,20000);//Theraiseargumentisthethird?

//Dotheraise
cstmt.execute();

//Getthenewsalaryback
intnew_salary=cstmt.getInt(1);

System.out.println("Thenewsalaryis:"+new_salary);

//Closethestatement
cstmt.close();

//Closetheconnection
conn.close();
}
}

example2:

/*
*Createdon2004-10-12
*
*TODOTochangethetemplateforthisgeneratedfilegoto
*Window-Preferences-Java-CodeStyle-CodeTemplates
*/

/**
*@authorJackey
*
*TODOTochangethetemplateforthisgeneratedtypecommentgoto
*Window-Preferences-Java-CodeStyle-CodeTemplates
*/
/*
*ThissamplecanbeusedtochecktheJDBCinstallation.
*Justrunitandprovidetheconnectinformation.Itwillselect
*"HelloWorld"fromthedatabase.
*/

//Youneedtoimportthejava.sqlpackagetouseJDBC
importjava.sql.*;

//Weimportjava.iotobeabletoreadfromthecommandline

importjava.io.*;

importoracle.jdbc.OracleTypes;

classJdbcCheckup
{
publicstaticvoidmain(Stringargs[])
throwsSQLException,IOException
{
//LoadtheOracleJDBCdriver
DriverManager.registerDriver(neworacle.jdbc.driver.OracleDriver());

//Prompttheuserforconnectinformation
System.out.println("Pleaseenterinformationtotestconnectiontothedatabase");
Stringuser;
Stringpassword;
Stringdatabase;

user=readEntry("user:");
intslash_index=user.indexOf(/);
if(slash_index!=-1)
{
password=user.substring(slash_index+1);
user=user.substring(0,slash_index);
}
else
password=readEntry("password:");
database=readEntry("database(aTNSNAMEentry):");

System.out.print("Connectingtothedatabase...");
System.out.flush();

System.out.println("Connecting...");
Connectionconn=DriverManager.getConnection
("jdbc:oracle:oci8:@"+database,user,password);
System.out.println("connected.");

//Createastatement
Statementstmt=conn.createStatement();

//DotheSQL"HelloWorld"thing
ResultSetrset=stmt.executeQuery("selectHelloWorldfromdual");

while(rset.next())
System.out.println(rset.getString(1));
//closetheresultset,thestatementandconnect
rset.close();
stmt.close();

System.out.println("YourJDBCinstallationiscorrect.");
//


CallableStatementcall=conn.prepareCall("{callEmp_dept_data.Open_cv(?,?)}");
//FindoutalltheSALESperson
//call.registerOutParameter(1,OracleTypes.CURSOR);
call.registerOutParameter(1,OracleTypes.CURSOR);
call.setInt(2,1);
call.execute();
ResultSetrs=(ResultSet)call.getObject(1);

//Dumpthecursor
while(rs.next())
System.out.println(rs.getString(1)+"        "+rs.getString(2)+"        "+rs.getString(3));

rs.close();
call.close();

conn.close();
}

//Utilityfunctiontoreadalinefromstandardinput
staticStringreadEntry(Stringprompt)
{
try
{
StringBufferbuffer=newStringBuffer();
System.out.print(prompt);
System.out.flush();
intc=System.in.read();
while(c!=
&&c!=-1)
{
buffer.append((char)c);
c=System.in.read();
}
returnbuffer.toString().trim();
}
catch(IOExceptione)
{
return"";
}
}
}




j2EE和asp比较,其实也没什么比的,原因和我上面说那些比较差不了多少,也是稳定性,安全性,J2EE比asp高,速度上比不过asp,asp也是延续着它的拖拽控件的方法,提高速度。

分手快乐 发表于 2015-1-21 12:58:58

至于JDBC,就不用我多说了,你如果用java编过存取数据库的程序,就应该很熟悉。还有,如果你要用Java编发送电子邮件的程序,你就得看看Javamail 了。

兰色精灵 发表于 2015-1-28 05:35:55

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

飘灵儿 发表于 2015-1-31 16:33:12

任职于太阳微系统的詹姆斯·高斯林等人于1990年代初开发Java语言的雏形,最初被命名为Oak,目标设置在家用电器等小型系统的程序语言

金色的骷髅 发表于 2015-1-31 22:46:12

关于设计模式的资料,还是向大家推荐banq的网站 http://www.jdon.com/,他把GOF的23种模式以通俗易懂的方式诠释出来,纯Java描述,真是经典中的经典。

乐观 发表于 2015-2-7 01:00:46

Jive的资料在很多网站上都有,大家可以找来研究一下。相信你读完代码后,会有脱胎换骨的感觉。遗憾的是Jive从2.5以后就不再无条件的开放源代码,同时有licence限制。不过幸好还有中国一流的Java程序员关注它,外国人不开源了,中国人就不能开源吗?这里向大家推荐一个汉化的Jive版本—J道。Jive(J道版)是由中国Java界大名 鼎鼎的banq在Jive 2.1版本基础上改编而成, 全中文,增加了一些实用功能,如贴图,用户头像和用户资料查询等,而且有一个开发团队在不断升级。你可以访问banq的网站

因胸联盟 发表于 2015-2-19 04:55:53

关于设计模式的资料,还是向大家推荐banq的网站 http://www.jdon.com/,他把GOF的23种模式以通俗易懂的方式诠释出来,纯Java描述,真是经典中的经典。

灵魂腐蚀 发表于 2015-2-26 01:41:30

另外编写和运行Java程序需要JDK(包括JRE),在sun的官方网站上有下载,thinking in java第三版用的JDK版本是1.4,现在流行的版本1.5(sun称作J2SE 5.0,汗),不过听说Bruce的TIJ第四版国外已经出来了,是专门为J2SE 5.0而写的。

蒙在股里 发表于 2015-3-4 11:48:55

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

小妖女 发表于 2015-3-7 10:29:21

还好,SUN提供了Javabean可以把你的JSP中的 Java代码封装起来,便于调用也便于重用。

海妖 发表于 2015-3-13 03:49:45

多重继承(以接口取代)等特性,增加了垃圾回收器功能用于回收不再被引用的对象所占据的内存空间,使得程序员不用再为内存管理而担忧。在 Java 1.5 版本中,Java 又引入了泛型编程(Generic Programming)、类型安全的枚举、不定长参数和自动装/拆箱等语言特性。

柔情似水 发表于 2015-3-19 05:20:45

关于设计模式的资料,还是向大家推荐banq的网站 http://www.jdon.com/,他把GOF的23种模式以通俗易懂的方式诠释出来,纯Java描述,真是经典中的经典。

愤怒的大鸟 发表于 2015-3-27 07:10:33

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

变相怪杰 发表于 2015-4-14 00:08:04

你就该学一学Servlet了。Servlet就是服务器端小程序,他负责生成发送给客户端的HTML文件。JSP在执行时,也是先转换成Servlet再运行的。虽说JSP理论上可以完全取代Servlet,这也是SUN推出JSP的本意,可是Servlet用来控制流程跳转还是挺方便的,也令程序更清晰。接下来你应该学习一下Javabean了,可能你早就看不管JSP在HTML中嵌Java代码的混乱方式了,这种方式跟ASP又有什么区别呢?

冷月葬花魂 发表于 2015-4-16 05:52:03

《JAVA语言程序设计》或《JAVA从入门到精通》这两本书开始学,等你编程有感觉的时候也可以回看一下。《JAVA读书笔记》这本书,因为讲的代码很多,也很容易看懂,涉及到面也到位。是你学习技术巩固的好书,学完后就看看《JAVA编程思想》这本书,找找一个自己写的代码跟书上的代码有什么不一样。

透明 发表于 2015-4-26 23:10:10

当然你也可以参加一些开源项目,一方面可以提高自己,另一方面也是为中国软件事业做贡献嘛!开发者在互联网上用CVS合作开发,用QQ,MSN,E-mail讨论联系,天南海北的程序员分散在各地却同时开发同一个软件,是不是很有意思呢?

莫相离 发表于 2015-5-5 13:45:07

一般学编程语言都是从C语开始学的,我也不例外,但还是可能不学过程语言而直接学面向对象语言的,你是刚接触语言,还是从C开始学比较好,基础会很深点,如果你直接学习JAVA也能上手,一般大家在学语言的时候都记一些语言的关键词,常有的包和接口等。再去做逻辑代码的编写,以后的学习过程都是从逻辑代码编写中提升的,所以这方面都是经验积累的。你要开始学习就从

admin 发表于 2015-5-6 01:43:29

是一种语言,用以产生「小应用程序(Applet(s))

再见西城 发表于 2015-5-7 16:26:25

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

爱飞 发表于 2015-6-12 20:50:21

至于JDBC,就不用我多说了,你如果用java编过存取数据库的程序,就应该很熟悉。还有,如果你要用Java编发送电子邮件的程序,你就得看看Javamail 了。
页: [1] 2
查看完整版本: JAVA网站制作之Java 中挪用oracle 的历程