浏览 3105 次
锁定老帖子 主题:在java中使用存储过程
精华帖 (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(); 这样我们就可以利用储存过程向数据库中插入数据了 声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |
发表时间: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(); 这样我们就可以利用储存过程向数据库中插入数据了
|
|
返回顶楼 | |
发表时间:2009-01-16
(学习中)小弟也发表下自己的看法,
个人认为: 1.一般来说执行后台的存储过程要快!假如有业务的修改,可以直接修改存储过程,不用修改程序! 2.在某些特定情况下使用存储过程可以提高程序运行效率。 3.java开发考虑移植性,如果程序中过分的依赖存储过程完成业务,那么就过分的依赖数据库。。就降低了数据库的移植性。 |
|
返回顶楼 | |
发表时间:2009-01-16
我问一个ORACLE存储过程问题,不知道是我错了还是。。。
我有一个方法要插入很多表,然后调用存储过程取一些值,处理这些值再插入一些表,这一系列步骤在一个事务里完成,我在conn.setAutoCommit(false)和conn.commit();之间调用了一些存储过程,那么这个事务总是任何记录都插不进去,难道oracle手动提交的事务中不能调用存储过程??? |
|
返回顶楼 | |