Tobia Conforto wrote:
Al Brown wrote:
I guess I can just put jdbc command in a java class and use the
<map:act> to call the class but it looks likes a lot of good folks
have already solved this problem but the solution is not obvious to
me. I found the ModularDatabaseActions wiki pages but I have not
found a how-to or tutorial and where all the pieced go.
I have seen the database connection stuff and the pooling stuff so it
seems like I should not create another mysql connection in my java
code but I do not know how to get at and use the connection in cocoon.
I cannot help you with that ModularDatabaseAction, but this is how I
use the pooled connections in my own java components:
public class ... implements Serviceable {
protected ServiceSelector dataSourceSelector;
public void service(ServiceManager manager) throws ServiceException {
try {
dataSourceSelector = (ServiceSelector)
manager.lookup(DataSourceComponent.ROLE + "Selector");
} catch (ServiceException e) {
throw new CascadingRuntimeException("DataSource selector is
not available.", e);
}
}
// this is a wrapper for using JDBI. you can take it out if you'd
rather use JDBC directly
private class DataSourceWrapper implements ConnectionFactory {
private Connection conn;
public DataSourceWrapper(Connection c) { conn = c; }
public Connection getConnection() { return conn; }
}
// this is the main method of your action/transformer/input
module/...
public ...() {
Connection conn = null;
try {
try {
conn = ((DataSourceComponent)
dataSourceSelector.select(DATASOURCE)).getConnection();
} catch (Exception e) {
throw new CascadingRuntimeException("Cannot get a connection
for \""+DATASOURCE+"\".", e);
}
Handle DB = new DBI(new DataSourceWrapper(conn)).open();
DB.query(...)
DB.execute(...)
...
} finally {
try {
if (conn != null) conn.close();
} catch (Exception e) {
throw new CascadingRuntimeException("Cannot close the
connection for \""+DATASOURCE+"\".", e);
}
}
}
}
HTH
Tobia
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
--
This message has been verified by LastSpam eMail security service
Ce courriel a été vérifié par le service de sécurité pour courriels
LastSpam
http://www.lastspam.com
Thanks for your help. This is what I was looking for. I'm on vacation so
I will try it when I get back.
Al
--
Al; Dir. Software Development; Light Technology Publishing
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]