[seam-dev] jdbc connection with seam-persistence
George Gastaldi
gegastaldi at gmail.com
Mon Nov 28 15:25:18 EST 2011
If it helps, I use these two methods with JPA to call Stored Procedures /
Functions:
protected Object executeFunction(EntityManager entityManager, String
functionName, Object... params) {
StringBuilder functionStr = new StringBuilder(functionName);
functionStr.append("(");
for (int i = 1; i <= params.length; i++) {
functionStr.append("?").append(i);
functionStr.append(",");
}
functionStr.deleteCharAt(functionStr.length() - 1);
functionStr.append(")");
Query nativeQuery = entityManager.createNativeQuery("SELECT " +
functionStr.toString() + " FROM DUAL");
for (int i = 1; i <= params.length; i++) {
nativeQuery.setParameter(i, params[i - 1]);
}
return nativeQuery.getSingleResult();
}
protected Object executeFunctionUpdate(DataSource dataSource, String
functionName, Object... params) {
StringBuilder functionStr = new StringBuilder(functionName);
functionStr.append("(");
for (int i = 1; i <= params.length; i++) {
functionStr.append("?,");
}
functionStr.deleteCharAt(functionStr.length() - 1);
functionStr.append(")");
String sqlString = "{? = call " + functionStr.toString() + "}";
Connection con = null;
CallableStatement call = null;
try {
con = dataSource.getConnection();
call = con.prepareCall(sqlString);
call.registerOutParameter(1, java.sql.Types.NUMERIC);
for (int i = 1; i <= params.length; i++) {
call.setObject(i + 1, params[i - 1]);
}
call.execute();
return call.getObject(1);
} catch (SQLException se) {
throw new GvtIntegraException(se);
} finally {
DBUtil.closeQuietly(con, call, null);
}
}
2011/11/26 michal.kaplon at poczta.fm <michal.kaplon at poczta.fm>
> Hi,
>
> It smells like a challenge for cdi-query extension guys ;)
>
> --
> BR,
> Michal
>
> On 25.11.2011 21:32, John D. Ament wrote:
> > Here here.
> >
> > I know the biggest issue I always run into is stored procedure
> > invocation. Something really easy to implement would be binding stored
> > procedures (not ones that return results, just do work) to interface
> methods
> >
> > public interface SomePackageNameOrDboOrSchemaName{
> >
> > @StoredProcedure("someProcedureName(?,?,?)")
> > public void someProcedureName(String s, int i, Long l);
> > }
> >
> > And do automatic binding of the method args to the procedure invocation.
> >
> > For result sets, I always find it easier to just bind it as a JPA query.
> >
> > On Fri, Nov 25, 2011 at 3:07 PM, José Rodolfo Freitas
> > <joserodolfo.freitas at gmail.com <mailto:joserodolfo.freitas at gmail.com>>
> > wrote:
> >
> > Yeah, a JBDC module would be very useful. Eventually I cross with
> > requirements that asks for JDBC connections. Essentially for
> > perfomance with gigantic queries and reports.
> >
> >
> > On Fri, Nov 25, 2011 at 3:39 PM, John D. Ament
> > <john.d.ament at gmail.com <mailto:john.d.ament at gmail.com>> wrote:
> >
> > Maybe we need a Seam JDBC module.
> >
> >
> > On Fri, Nov 25, 2011 at 12:32 PM, Jason Porter
> > <lightguard.jp at gmail.com <mailto:lightguard.jp at gmail.com>>
> wrote:
> >
> > No it does not, JPA only.
> >
> > Sent from my iPhone
> >
> > On Nov 25, 2011, at 8:21, José Rodolfo Freitas
> > <joserodolfo.freitas at gmail.com
> > <mailto:joserodolfo.freitas at gmail.com>> wrote:
> >
> >> afaik, it doesn't, but maybe a feature or two escaped from
> >> my eyes.
> >>
> >> On Fri, Nov 25, 2011 at 1:20 PM, José Rodolfo Freitas
> >> <joserodolfo.freitas at gmail.com
> >> <mailto:joserodolfo.freitas at gmail.com>> wrote:
> >>
> >> Hey guys, quick question:
> >> Does seam-persistence provide any mechanism that
> >> handles jdbc connections and sql native queries?
> >>
> >>
> >>
> >>
> >> _______________________________________________
> >> seam-dev mailing list
> >> seam-dev at lists.jboss.org <mailto:seam-dev at lists.jboss.org>
> >> https://lists.jboss.org/mailman/listinfo/seam-dev
> >
> > _______________________________________________
> > seam-dev mailing list
> > seam-dev at lists.jboss.org <mailto:seam-dev at lists.jboss.org>
> > https://lists.jboss.org/mailman/listinfo/seam-dev
> >
> >
> >
> >
> >
> >
> > _______________________________________________
> > seam-dev mailing list
> > seam-dev at lists.jboss.org
> > https://lists.jboss.org/mailman/listinfo/seam-dev
>
> _______________________________________________
> seam-dev mailing list
> seam-dev at lists.jboss.org
> https://lists.jboss.org/mailman/listinfo/seam-dev
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.jboss.org/pipermail/seam-dev/attachments/20111128/ec16266d/attachment.html
More information about the seam-dev
mailing list