java程序员的存储过程 原文:http://www.onjava.com/pub/a/onjava/2003/08/13/stored_procedures.html 本文阐述了怎么使用dbms存储过程。我阐述了使用存储过程的基本的和高级特性,比如返回resultset。本文假设你对dbms和jdbc已经非常熟悉,也假设你能够毫无障碍地阅读其它语言写成的代码(即不是java的语言),但是,并不要求你有任何存储过程的编程经历。 使用存储过程 简单的老的jdbc通过callablestatement类支持存储过程的调用。该类实际上是preparedstatement的一个子类。假设我们有一个poets数据库。数据库中有一个设置诗人逝世年龄的存储过程。下面是对老酒鬼dylan thomas(old soak dylan thomas,不指定是否有关典故、文化,请批评指正。译注)进行调用的详细代码: try
--------------------------------------------------------------------------------
by nic ferrier
存储过程是指保存在数据库并在数据库端执行的程序。你可以使用特殊的语法在java类中调用存储过程。在调用时,存储过程的名称及指定的参数通过jdbc连接发送给dbms,执行存储过程并通过连接(如果有)返回结果。
使用存储过程拥有和使用基于ejb或corba这样的应用服务器一样的好处。区别是存储过程可以从很多流行的dbms中免费使用,而应用服务器大都非常昂贵。这并不只是许可证费用的问题。使用应用服务器所需要花费的管理、编写代码的费用,以及客户程序所增加的复杂性,都可以通过dbms中的存储过程所整个地替代。
你可以使用java,python,perl或c编写存储过程,但是通常使用你的dbms所指定的特定语言。oracle使用pl/sql,postgresql使用pl/pgsql,db2使用procedural sql。这些语言都非常相似。在它们之间移植存储过程并不比在sun的ejb规范不同实现版本之间移植session bean困难。并且,存储过程是为嵌入sql所设计,这使得它们比java或c等语言更加友好地方式表达数据库的机制。
因为存储过程运行在dbms自身,这可以帮助减少应用程序中的等待时间。不是在java代码中执行4个或5个sql语句,而只需要在服务器端执行1个存储过程。网络上的数据往返次数的减少可以戏剧性地优化性能。
{
int age = 39;
string poetname = "dylan thomas";
callablestatement proc =
connection.preparecall("{ call set_death_age(?, ?) }");
proc.setstring(1, poetname);
proc.setint(2, age);
cs.execute();
}
catch (sqlexception e)
{
// ....
}
Java Asp PHP .Net XML C/C++ CGI VB Jsp J2ee J2se J2me EJB Servlet Tomcat Resin Struts Weblogic Eclipse ANT GUI JMS Web servise IDEA Webphere Hibernate Spring Jboss Applet Swing Socket Javamail Perl Ajax P2P 安全 模式 框架 测试 开源 游戏
Windows XP Windows 2000 Windows 2003 Windows Me Windows 9.x Linux UNIX 注册表 操作系统 服务器 应用服务器