.
.
.
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()
自己加个各种关闭 *** 作和异常处理
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)