Skip to main content

Callable Statement

Callable Statement:

  • It is an interface of java.sql.* and It is used to Execute
    Stored Procedure.
Java Program Which calling stored procedure in database
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
 
package com.spy.javaforlearn;
 
import java.sql.CallableStatement;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
 
import com.mysql.jdbc.Driver;
 
public class CallableStatement1
{
 
	public static void main(String[] args)
	{
 
		Connection con=null;
		CallableStatement stmt=null;
		ResultSet rs=null;
 
 
		try 
		{
 
 
			/*
			 * load the driver
			 */
			Driver driverref=new Driver();
			DriverManager.registerDriver(driverref);
 
			/*
			 * get db connection via driver
			 */
 
	   String url="jdbc:mysql://localhost:3306/test?user=root&password=root";
	   con=DriverManager.getConnection(url);
 
	             /*
		      * issue sql query via driver
		     */
 
	String query="call student_insert_update(4,'Ankur','Panesariya')";
 
 
			stmt=con.prepareCall(query);
 
 
 
		  boolean isdbresult = stmt.execute();
 
		  if(isdbresult)	
		  {
			 System.out.println("result is type of dbresult"); 
 
			  rs= stmt.getResultSet();
 
			 while(rs.next())
			 {
 
				String userid=rs.getString("User_id"); 
				String fnm=rs.getString("f_name");
				String lnm=rs.getString("l_name");
 
 
				System.out.println(userid);
				System.out.println(fnm); 
				System.out.println(lnm);
 
 
			 }
 
		  }
		  else
		  {
			  System.out.println("result is type of integer count:");
 
			  int count=stmt.getUpdateCount();
 
			  System.out.println("no of row affected: "+count);
 
		  }
 
 
 
 
		} 
 
		catch (SQLException e) 
		{
			e.printStackTrace();
		}
 
 
 
		/*
		 * close all jdbc object
		 */
 
		finally
		{
 
			try {
				if(con!=null)
 
				{
					con.close();
				}
 
				if(stmt!=null)
				{
					stmt.close();
				}
 
				if(rs!=null)
				{
					rs.close();
				}
 
			}
 
			catch (SQLException e) 
			{
 
				e.printStackTrace();
			}	
		}
	 }
}
 
output:
 
result is type of integer count:
no of row affected: 1

Now you can see data in Mysql database

screenshot_1