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: KualiDBPlatformOracle
and 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 PlatformAwareDaoBaseOjb
or PlatformAwareDaoBaseJdbc
as the KFS DAOs do, you can use the getDbPlatform
method of the super class to obtain the configured instance of KualiDBPlatform
.
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.


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.