KFS data access objects (DAOs) utilize OJB for most database operations. OJB has built-in support for several different database platforms, so we start by leveraging that. There are places, though, where we need functionality not provided by OJB (or that OJB does not perform quickly or easily enough). We tagged DAOs that contain direct SQL with a marker interface (
RawSQL) for easy identification and kept the goal of platform independence in mind when developing them.
KFS has the concept of the database platform for those cases where we were unable to rely on OJB and the supported databases deviate. This is represented by the
KualiDBPlatform interface. There are currently two implementations of this interface:
KualiDBPlatformMySQL. These classes provide information and functionality used by other parts of the application to compensate for differences between the two platforms. As you are developing your own DAOs, you may need to use the
KualiDBPlatform methods. As long as your DAO subclasses
PlatformAwareDaoBaseJdbc as the KFS DAOs do, you can use the
getDbPlatform method of the super class to obtain the configured instance of
KFS can be adapted to work with other databases by adding appropriate
KualiDBPlatform implementations. Adding support for other databases may uncover the need for additional methods on this interface. The
KualiDBPlatform interface and implementations, along with the
RawSQL marker interface are part of Rice (see the
org.kuali.core.dbplatform package). Kuali Enterprise Workflow (KEW) was originally a separate product. As such, it has its own, separate concept of a database platform (
edu.iu.uis.eden.database.platform.Platform). KEW provides several other implementations of this interface, in addition to those for Oracle and MySQL. But, you may also need to create your own implementation of this second interface, if one is not already provided.
If you use Oracle or MySQL, platform-related settings will be taken care of for you at build time, based on the value of the
datasource.ojb.platform property in
kuali-build.properties. The build script uses this property to configure OJB and determine the appropriate driver, JDBC URL,
KualiDBPlatform implementation and workflow
Platform implementation to use. If you choose to add support for another database platform, you will also want to review and supplement this build logic.
Kuali software is licensed for use pursuant to the Educational Community License v.1.0.
Copyright © 2005-2007 The Kuali Foundation. All rights reserved.
Portions of Kuali are copyrighted by other parties as described in the Acknowledgments screen.
Kuali ® is a registered trademark of the Trustees of Indiana University.