论坛首页 入门技术论坛

在java中使用存储过程

浏览 3067 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (3) :: 隐藏帖 (0)
作者 正文
   发表时间:2008-12-24   最后修改:2008-12-24

   从某种意义上来说,存储过程也是一种数据库对象,他是为了执行某个特定任务,将一组预先编译的SQL语句以一个存储单元的形式放在服务器上,以供用户使用。

  存储过程总是在第一次执行的时候进行编译,然后将编译好的代码放在高速缓存中以便以后使用,这样可以提高代码的执行效率。

   存储过程常常具有以下特点:

(1)它可以接受输入参数,并可以返回输出参数,

(2)它包含执行数据库的sql语句

(3)一个储存过程在执行的过程中,还可以调用其他的存储过程。

下面我将逐步讲解怎么在java中使用存储过程。

第一个例子:利用存储过程向数据库中插入记录

第一步,建立相关的表:

create  table userTable 
(
  Id int  constraint id primary key,
  userName varchar(40) not null,
  userPassword varchar(40) not null,

)

 第二步:在sql数据库中创建存储过程:

CREATE PROCEDURE .[insert_userTable] 
(
@username  [varchar](40),
@password [varchar](40)

)
AS

insert into userTable (userName,userPassword)values (@username,@password)
GO

 

第三步就可以在java应用程序中,使用存储过程向数据库中插入了,具体代码如下:

CallableStatement callState=con.prepareCall("{call insert_userTable(?,?)}");
 callState.setString(1,"mingzi");
 callState.setString(2, "123456");
 callState.executeUpdate();

 这样我们就可以利用储存过程向数据库中插入数据了

   发表时间:2009-01-16  
happyday 写道

   从某种意义上来说,存储过程也是一种数据库对象,他是为了执行某个特定任务,将一组预先编译的SQL语句以一个存储单元的形式放在服务器上,以供用户使用。

  存储过程总是在第一次执行的时候进行编译,然后将编译好的代码放在高速缓存中以便以后使用,这样可以提高代码的执行效率。

   存储过程常常具有以下特点:

(1)它可以接受输入参数,并可以返回输出参数,

(2)它包含执行数据库的sql语句

(3)一个储存过程在执行的过程中,还可以调用其他的存储过程。

下面我将逐步讲解怎么在java中使用存储过程。

第一个例子:利用存储过程向数据库中插入记录

第一步,建立相关的表:

create  table userTable 
(
  Id int  constraint id primary key,
  userName varchar(40) not null,
  userPassword varchar(40) not null,

)

 第二步:在sql数据库中创建存储过程:

CREATE PROCEDURE .[insert_userTable] 
(
@username  [varchar](40),
@password [varchar](40)

)
AS

insert into userTable (userName,userPassword)values (@username,@password)
GO

 

第三步就可以在java应用程序中,使用存储过程向数据库中插入了,具体代码如下:

CallableStatement callState=con.prepareCall("{call insert_userTable(?,?)}");
 callState.setString(1,"mingzi");
 callState.setString(2, "123456");
 callState.executeUpdate();

 这样我们就可以利用储存过程向数据库中插入数据了

 

0 请登录后投票
   发表时间:2009-01-16  
(学习中)小弟也发表下自己的看法,
个人认为:
1.一般来说执行后台的存储过程要快!假如有业务的修改,可以直接修改存储过程,不用修改程序!
2.在某些特定情况下使用存储过程可以提高程序运行效率。
3.java开发考虑移植性,如果程序中过分的依赖存储过程完成业务,那么就过分的依赖数据库。。就降低了数据库的移植性。
0 请登录后投票
   发表时间:2009-01-16  
我问一个ORACLE存储过程问题,不知道是我错了还是。。。

我有一个方法要插入很多表,然后调用存储过程取一些值,处理这些值再插入一些表,这一系列步骤在一个事务里完成,我在conn.setAutoCommit(false)和conn.commit();之间调用了一些存储过程,那么这个事务总是任何记录都插不进去,难道oracle手动提交的事务中不能调用存储过程???
0 请登录后投票
论坛首页 入门技术版

跳转论坛:
Global site tag (gtag.js) - Google Analytics