问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

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 上调用此方法 ...

事务调用更新和存储过程 java如何调用存储过程 mysql存储过程中使用事务 oracle存储过程事务控制 oracle存储过程事务自动提交 oracle调用存储过程 oracle怎样调用存储过程 存储过程中的事务 存储过程开启事务
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
汕头好玩的地方推荐 汕头有什么好玩的旅游景点 海丰爬山的地方推荐,汕尾海丰旅游推荐景点 北流旅游观光 北流市博物馆管辖隶属 北流市粤东会馆会馆由来 在工商银行能往农业银行的卡汇钱么? 北流市粤东会馆会馆历史 2018年女兵招收时间 今年女兵什么时候报名啊 女兵参军条件2018时间报名 我如何用JAVA调用存储过程取得 serveroutput? JAVA调用MySQL存储过程 在JAVA中怎么调用带参数的存储过程啊?? java 如何调用带有表值参数的存储过程? 在java中调用一个已经写好的存储过程(请带上详细代码,谢谢了,数据库是... java中怎么用存储过程啊? java调用的存储过程,能否传入游标参数? java 调用存储过程 怎么用? java 怎么调用mysql 存储过程 加别人的怎么加不上? java 调用存储过程 对方设置加不了怎么办? JAVA中如何调用存储过程 java代码怎么调用存储过程 Java中是如何调用存储过程的?(详细代码) 如何用JAVA调用存储过程 java编程中怎样调用存储过程 根据对方为什么加不上好友? 有对方的怎么加不了? 加别人的怎么加不上? 淘宝商家怎么提升自己的淘信用分? 淘宝商家如何退款给买家? 如何往铭牌上印钢字? 班级铭牌设计,图片已给出,空白部分需要画些什么东西才好? 淘宝店铺如何运营 外星人笔记本刻铭牌比不刻铭牌的快多长时间 淘宝新手商家如何选择开店类型 有哪些注意事项 标牌都有哪几种颜色 关于军人的"铭牌" 海运集装箱生产出厂之后,每隔多长时间检验一次?是否同时更换箱体铭牌? 饥荒路标牌怎么传送 饥荒联机版中的路标牌怎么正确 政府城中村改造指挥部大门对联怎么写 如何识别机电设备铭牌配件型号 如何判断一个网站的seo做的怎么样? 有人撸ROG STRIX FLARE 耀光机械键盘了吗?那个铭牌定制要怎么操作啊? 汽车方向盘上是个长六边形符号,里面空白是什么牌子的车? 一般电风扇的电容要用多大 家用电风扇的电容大小一般是多少? 电风扇常用启动电容容量一般多大? 更换一个电风扇的电容大概要多少钱?