Java调用SQL存储过程、事务

Java调用SQL存储过程、事务,第1张

例示一个不带参数的简单存储过程。多数存储过程的功能比本例复杂多了,但这里主要说明存储过程的一些基本要点。如前面所述,不同DBMS定义存储过程的语法是不同的。例如,有些DBMS使用begin

.

.

.

end或其他关键字指明存储过程定义的开始和结束。在有些DBMS中,下面的SQL语句可创建一个存储过程:

create

procedure

SHOW_SUPPLIERS

as

select

SUPPLIERS.SUP_NAME,

COFFEES.COF_NAME

from

SUPPLIERS,

COFFEES

where

SUPPLIERS.SUP_ID

=

COFFEES.SUP_ID

order

by

SUP_NAME

下面的代码将SQL语句放到一个字符串中,然后赋给变量createProcedure以备后用:

String

createProcedure

=

"create

procedure

SHOW_SUPPLIERS

"

+

"as

"

+

"select

SUPPLIERS.SUP_NAME,

COFFEES.COF_NAME

"

+

"from

SUPPLIERS,

COFFEES

"

+

"where

SUPPLIERS.SUP_ID

=

COFFEES.SUP_ID

"

+

"order

by

SUP_NAME"

下面的代码段使用Connection对象con来创建Statement对象,用于把创建存储过程的SQL语句发送给数据库:

Statement

stmt

=

con.createStatement()

stmt.executeUpdate(createProcedure)

存储过程SHOW_SUPPLIERS将作为一个可调用的数据库对象在数据库中编译并存储,调用时就像调用其他方法一样。

conn.setAutoCommit(false)

PreparedStatement pstmt1 = con.prepareStatement(sql1)

pstm1.setInt(1,xxxx) //根据数据库的字段类型选择试用setInt,setLong,setString等。。。

pstm1.setInt(2,xxxxx)

pstm1.setInt(3,xxxxx)

pstm1.setInt(4,xxxxx)

pstm1.setInt(5,xxxxx)

//设置完PreparedStatement

pstm1.execute(sql1)

PreparedStatement pstmt2 = con.prepareStatement(sql2)

pstm2.setInt(1,xxxx)

pstm2.setInt(2,xxxxx)

//设置完PreparedStatement

pstm2.executeUpdate(sql2)

PreparedStatement pstmt3 = con.prepareStatement(sql3)

pstm3.setInt(1,xxx)

//设置完PreparedStatement

pstm3.executeUpdate(sql3)

//你这里没有用到查询,所以不需要executeQuery(),如果需要查询的用ResultSet去接受executeQuery()这个东西的返回值

conn.commit()

自己加个各种关闭 *** 作和异常处理


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/10709009.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-10
下一篇 2023-05-10

发表评论

登录后才能评论

评论列表(0条)

保存