public
void
executeProcedure(String queryString, Object[] parameters) {
Connection connection =
null
;
CallableStatement stmt=
null
;
org.hibernate.Session session=
this
.getSession();
try
{
connection=session.connection();
stmt=connection.prepareCall(queryString);
if
(parameters.
length
>0)
{
for
(
int
i = 0;i<(parameters.
length
);i++)
{
if
(parameters[i]
instanceof
Integer)
{
stmt.setInt(i+1, (Integer)parameters[i]);
}
if
(parameters[i]
instanceof
Double)
{
stmt.setDouble(i+1, (Double)parameters[i]);
}
if
(parameters[i]
instanceof
Float)
{
stmt.setFloat(i+1, (Float)parameters[i]);
}
if
(parameters[i]
instanceof
Long)
{
stmt.setLong(i+1, (Long)parameters[i]);
}
if
((parameters[i]
instanceof
String) && (
long
)((String)parameters[i]).length() <= 65535L)
{
stmt.setString(i+1, (String)parameters[i]);
}
if
(parameters[i]
instanceof
Short)
{
stmt.setShort(i+1, (Short)parameters[i]);
}
if
(parameters[i]
instanceof
Boolean)
{
stmt.setBoolean(i+1, (Boolean)parameters[i]);
}
if
(parameters[i]
instanceof
Byte)
{
stmt.setByte(i+1, (Byte)parameters[i]);
}
if
(parameters[i]
instanceof
Byte[])
{
stmt.setBytes(i+1, (
byte
[])(
byte
[])parameters[i]);
}
}
}
stmt.executeUpdate();
stmt.close();
}
catch
(Exception e)
{
e.printStackTrace();
}
finally
{
if
(connection!=
null
)
{
try
{
connection.close();
}
catch
(Exception e) {
e.printStackTrace();
}
finally
{
connection=
null
;
}
}
org.springframework.orm.hibernate3.SessionFactoryUtils.closeSessionIfNecessary(session,
this
.getSessionFactory());
}
}