Java调用SQL存储过程、事务
发布网友
发布时间:2022-04-26 19:04
我来回答
共3个回答
热心网友
时间:2022-04-08 08:18
例示一个不带参数的简单存储过程。多数存储过程的功能比本例复杂多了,但这里主要说明存储过程的一些基本要点。如前面所述,不同DBMS定义存储过程的语法是不同的。例如,有些DBMS使用begin
.
.
.
end或其他关键字指明存储过程定义的开始和结束。在有些DBMS中,下面的SQL语句可创建一个存储过程:
create
procere
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语句放到一个字符串中,然后赋给变量createProcere以备后用:
String
createProcere
=
"create
procere
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(createProcere);
存储过程SHOW_SUPPLIERS将作为一个可调用的数据库对象在数据库中编译并存储,调用时就像调用其他方法一样。
热心网友
时间:2022-04-08 09:36
注意,用于执行cs的方法是executeQuery,因为cs调用的存储过程包含一个查询,执行后产生一个结果集。如果存储过程包含一条更新或一条DLL语句,那就要使用executeUpdate方法。但有时一个存储过程包含多条SQL语句,因而它产生的不只是一个结果集、不只是一个更新计数或产生一些结果集和更新计数的组合。这样就有多个结果集,这时就应该使用execute方法来执行CallableStatement。
CallableStatement类是PreparedStatement的子类,因此CallableStatement对象可与PreparedStatement对象一样带有输入参数。此外,CallableStatement对象还可带输出参数或输入/输出参数。INOUT参数和execute方法很少使用。要获取更详细信息,请参考“使用Java进行JDBC数据库访问”。
热心网友
时间:2022-04-08 11:11
从JDBC调用存储过程
JDBC允许在用Java编写的程序中调用存储过程。第一步是创建一个CallableStatement对象。就像Statement和PreparedStatement对象一样,利用一个打开的Connection对象即可完成创建。CallableStatement对象包含了存储过程的一个调用;但它不包含存储过程本身。下面的第一行代码使用连接con创建了存储过程SHOW_SUPPLIERS的一个调用。花括号内的那部分就是存储过程的转义语法。当驱动程序碰到“{call
SHOW_SUPPLIERS}”时,它将把这个转义语法转换成数据库使用的本地SQL,以调用名为SHOW_SUPPLIERS的存储过程。
CallableStatement
cs
=
con.prepareCall("{call
SHOW_SUPPLIERS}");
ResultSet
rs
=
cs.executeQuery();
Java调用SQL存储过程、事务
"order by SUP_NAME";下面的代码段使用Connection对象con来创建Statement对象,用于把创建存储过程的SQL语句发送给数据库:Statement stmt = con.createStatement();stmt.executeUpdate(createProcedure);存储过程SHOW_SUPPLIERS将作为一个可调用的数据库对象在数据库中编译并存储,调用时就像调用其他方法一样。
java 调用存储过程
调用存储过程得直接取得Connetion对象,用到CallableStatement这个对象,Connetion中有个方法:CallableStatement prepareCall(String sql) 。其中的sql就是存储过程调用时字符串形式:{call <procedure-name>[(<arg1>,<arg2>, ...)]},构造完成后就可以用Connetion执行了 ...
Java如何实现对存储过程的调用
Connection conn=DriverManager.getConnection("jdbc:odbc:mydata","sa","");//创建存储过程的对象 CallableStatement c=conn.prepareCall("{call getsum(?,?)}");//给存储过程的第一个参数设置值 c.setInt(1,100);//注册存储过程的第二个参数 c.registerOutParameter(2,java.sql.Types.INTEGER);...
java中如何调用数据库的存储过程
Java调用存储过程的方法是通过调用Connection的实例方法prepareCall,prepareCall方法返回CallableStatement对象用于填充存储过程的参数。prepareCall方法形参是调用存储过程的sql语句,此参数的语法格式如下:{call storedProcedureName(parameter-list)}其中,storedProcedureName是存储过程名称,parameter-list是存储过程参数...
java程序中写sql语句和存储过程 哪个效率高些
SQL存储过程放在SQL数据库中,因此在程序中调用的时候不必自己拼接sql语句。数据库会对存储过程进行预编译,因此速度快。3,在网络上不必传输冗长的SQL语句,而是直接调用存储过程的名字,因此可以加快速度当然,在一些外包软件开发中,是不允许使用存储过程的。因为对方不可以把数据库暴露给你,此时你只能使用...
java调用sqlserver存储过程问题
以下两种:CallableStatement stat = con.prepareCall("call procname(?,?)");stat.execute()or PrepareStatment stat = con.prepareCall("Exec procname ?,?");rs = stat.executeQuery();视图调用同表一样!,这个问题记得之前的远标学到过的,希望对你有所帮助 ...
在JAVA中怎么调用带参数的存储过程啊??
在Java里面调用存储过程,写法那是相当的固定:Class.forName(...Connection conn = DriverManager.getConnection(.../ p是要调用的存储过程的名字,存储过程的4个参数,用4个?号占位符代替 其余地方写法固定 / CallableStatement cstmt = conn.prepareCall("{call p(?,?,?,?)}");/ 告诉JDBC,这些...
java.sql的sql包内容
通常仅由 DriverManager 类使用DriverPropertyInfo 类:提供 JDBC 驱动程序的属性,不是供一般用户使用的向数据库发送 SQL 语句Statement:用于发送基本 SQL 语句PreparedStatement:用于发送准备好的语句或基本 SQL 语句(派生自 Statement)CallableStatement:用于调用数据库存储过程(派生自 PreparedStatement)...
java用调用sqlServer存储过程 com.microsoft.sqlserver.jdbc.SQLS...
修改下proc 最后那个output的不要 ALTER proc [dbo].[p_basecheck](@dm varchar(30),@mc varchar(200),@bz varchar(200))as begin DECLARE @RET INT set @RET=1000 SELECT @RET end 这样就有返回值了
java语言调用mysql存储过程(需要获取到存储过程中的out 变量),
Types.OTHER,可以使用此方法来读取特定于数据库的抽象数据类型。参数:parameterIndex - 第一个参数是 1,第二个参数是 2,依此类推 返回:保存 OUT 参数值的 java.lang.Object 抛出:SQLException - 如果 parameterIndex 无效;如果发生数据库访问错误,或者在关闭的 CallableStatement 上调用此方法 ...