You do not need to use the Connector/J classes directly, and shouldn't. Yes, you need a DataSource. If you're inside a web container, then you can and should already have configured the database connection in the container's configuration file. It makes the DataSource available for lookup via JNDI.
At no point do you need to know that the DataSource is actually a MysqlDataSource in your code, no. I think you need to read that Tomcat page and understand how J2EE containers deal with DataSources via JNDI. It will be clearer. This is not specific to Mahout. 2011/2/16 Daniel Mühlbachler <[email protected]>: > yeah, that's what I meant. My problem is that I am importing the MySQL > Connector/J directly in my source file. > So all my source files are not allowed to use such a class? But the > MySQLJDBCDataModel has a constructor like ...(DataSource ds, ...) and > DataSource is provided by the MySQL Connector/J but how can I give my > constructor a dataSource if I can't use the classes I need - deps that > shouldn't be there? > > Moreover, if I can configure the jetty server that it can handle MySQL > connections it's also ok but how can I compile a java source file that needs > a dataSource which is declared in a class I can't use directly? (something > paradox...) > > > Am 16.02.2011 16:13, schrieb Sean Owen: >> >> No. As I've said, you never import the driver / connector classes >> directly. You have a complete working example: Mahout. As you can see >> it doesn't depend on this. >> >> As I've also said, please read the documentation for Tomcat (or your >> container). Here you go: >> >> http://tomcat.apache.org/tomcat-6.0-doc/jndi-resources-howto.html#JDBC_Data_Sources >> >> This is where MySQL Connector/J is involved. >> >> 2011/2/16 Daniel Mühlbachler<[email protected]>: >>> >>> ok, thanks for your detailed answer - now I understand! :) >>> >>> So my problem is that I must import the MySQL Connector/J into my source >>> files because I need them. The nasty thing about that is that I just need >>> "import com.mysql.jdbc.jdbc2.optional.MysqlDataSource;" in my dataSource >>> but >>> that won't work because there shouldn't be any dependencies on that >>> because >>> I must configure the web application to use/provide the connector. >>> omg... Is there any example round here that shows such a configuration? >>> >
