Esta é a maneira recomendada, porque assegura que a classe é carregada em todas as JVMs criando uma instância ao mesmo tempo.
O mesmo que Class.forName("org.apache.derby.jdbc.EmbeddedDriver"), exceto por requerer que a classe seja encontrada quando o código é compilado.
Também é o mesmo que Class.forName("org.apache.derby.jdbc.EmbeddedDriver"), exceto por requerer que a classe seja encontrada quando o código é compilado. O campo pseudo-estático class resulta na classe nomeada.
Para definir uma propriedade do sistema, deve ser alterada a linha de comando da chamada, ou as propriedades do sistema no aplicativo. Não é possível alterar as propriedades do sistema em uma applet.
java -Djdbc.drivers=org.apache.derby.jdbc.EmbeddedDriver classeAplicativo
O driver real que fica registrado em DriverManager para tratar o protocolo jdbc:derby: não é a classe org.apache.derby.jdbc.EmbeddedDriver; esta classe simplesmente detecta o tipo de driver do Derby necessário, e faz com que o driver apropriado do Derby seja carregado.
A única maneira suportada para conectar ao sistema Derby através do protocolo jdbc:derby: é utilizando DriverManager para obter o driver (java.sql.Driver) ou a conexão (java.sql.Connection), através das chamadas de método getDriver e getConnection.