What does Class.forName() return? What does Class.forName().newInstance() return? Which one you need depends on what you need in the end; the thing returned by Class.forName() or the thing returned by Class.forName().newInstance(). As for which one you need for JDBC - unless the JDBC driver is badly written the first one should be enough.