Calling a Stored Procedure from JDBC in Java
By: Watson in JDBC Tutorials on 2007-10-13
JDBC allows you to call a database stored procedure from an application
written in the Java programming language. The first step is to create a CallableStatement
object. As with Statement
and PreparedStatement
objects, this is done with an open Connection
object. A callableStatement
object contains a call to a stored procedure; it does not contain the stored
procedure itself. The first line of code below creates a call to the stored
procedure SHOW_SUPPLIERS
using the connection con
.
The part that is enclosed in curly braces is the escape syntax for stored
procedures. When the driver encounters "{call SHOW_SUPPLIERS}"
,
it will translate this escape syntax into the native SQL used by the database
to call the stored procedure named SHOW_SUPPLIERS
.
CallableStatement cs = con.prepareCall("{call SHOW_SUPPLIERS}"); ResultSet rs = cs.executeQuery();
The ResultSet
rs
will be similar to the
following:
SUP_NAME COF_NAME ---------------- ----------------------- Acme, Inc. Colombian Acme, Inc. Colombian_Decaf Superior Coffee French_Roast Superior Coffee French_Roast_Decaf The High Ground Espresso
Note that the method used to execute cs
is executeQuery
because cs
calls a stored procedure that contains one query and
thus produces one result set. If the procedure had contained one update or one
DDL statement, the method executeUpdate
would have been the one
to use. It is sometimes the case, however, that a stored procedure contains
more than one SQL statement, in which case it will produce more than one
result set, more than one update count, or some combination of result sets and
update counts. In this case, where there are multiple results, the method execute
should be used to execute the CallableStatement
.
The class CallableStatement
is a subclass of PreparedStatement
,
so a CallableStatement
object can take input parameters just as a
PreparedStatement
object can. In addition, a CallableStatement
object can take output parameters, or parameters that are for both input and
output. INOUT parameters and the method execute
are used rarely.
Add Comment
This policy contains information about your privacy. By posting, you are declaring that you understand this policy:
- Your name, rating, website address, town, country, state and comment will be publicly displayed if entered.
- Aside from the data entered into these form fields, other stored data about your comment will include:
- Your IP address (not displayed)
- The time/date of your submission (displayed)
- Your email address will not be shared. It is collected for only two reasons:
- Administrative purposes, should a need to contact you arise.
- To inform you of new comments, should you subscribe to receive notifications.
- A cookie may be set on your computer. This is used to remember your inputs. It will expire by itself.
This policy is subject to change at any time and without notice.
These terms and conditions contain rules about posting comments. By submitting a comment, you are declaring that you agree with these rules:
- Although the administrator will attempt to moderate comments, it is impossible for every comment to have been moderated at any given time.
- You acknowledge that all comments express the views and opinions of the original author and not those of the administrator.
- You agree not to post any material which is knowingly false, obscene, hateful, threatening, harassing or invasive of a person's privacy.
- The administrator has the right to edit, move or remove any comment for any reason and without notice.
Failure to comply with these rules may result in being banned from submitting further comments.
These terms and conditions are subject to change at any time and without notice.
- Data Science
- Android
- React Native
- AJAX
- ASP.net
- C
- C++
- C#
- Cocoa
- Cloud Computing
- HTML5
- Java
- Javascript
- JSF
- JSP
- J2ME
- Java Beans
- EJB
- JDBC
- Linux
- Mac OS X
- iPhone
- MySQL
- Office 365
- Perl
- PHP
- Python
- Ruby
- VB.net
- Hibernate
- Struts
- SAP
- Trends
- Tech Reviews
- WebServices
- XML
- Certification
- Interview
categories
Related Tutorials
Data Access Technologies in Java
JDBC and Tomcat context settings
TEXT datatype SPLIT in MSSQL - to solve the 8000 limit set by varchar
What is Referential Integrity in databases?
Handling CSV in Stored Procedures
java.lang.NoClassDefFoundError and java.lang.NoSuchMethodError
Calling a Stored Procedure from JDBC in Java
setSavepoint and releaseSavepoint Example in Java
Result Sets, Cursors and Transactions in SQL
Stored Procedures example in SQL
Using the DriverManager Class vs Using a DataSource Object for a connection
Comments