Я работаю над новым модулем для проекта, который должен подключаться к базе данных SQL с помощью драйвера JDBC. Мне необходимо реализовать интерфейс подключения с методом getConnection()
, который имеет тип возврата org.forgerock.opendj.ldap.Connection
. Однако драйвер JDBC возвращает соединение типа com.mysql.jdbc.JDBC4Connection
. Кастинг дает мне следующую ошибку:Кастинг JDBC Connection
Exception in thread "main" java.lang.ClassCastException:
com.mysql.jdbc.JDBC4Connection cannot be cast to org.forgerock.opendj.ldap.Connection
at org.forgerock.opendj.virtual.JDBCConnectionFactory.getConnection(JDBCConnectionFactory.java:105)
Что бы быть лучшим способом, чтобы получить соединение типа org.forgerock.opendj.ldap.Connection
вместо com.mysql.jdbc.JDBC4Connection
?
JDBCConnectionFactory класс:
public class JDBCConnectionFactory implements ConnectionFactory{
private final String driverName = "com.mysql.jdbc.Driver";
private Connection con = null;
private String ConnectionUrl = "";
private final String Host;
private final int Port;
private final String DbName;
private final String UserName;
private final String UserPass;
public JDBCConnectionFactory(final String host, final int port, final String dbName, final String userName, final String userPass) {
this.Host = host;
this.Port = port;
this.DbName = dbName;
this.UserName = userName;
this.UserPass = userPass;
this.ConnectionUrl="jdbc:mysql://"
.concat(this.Host+":")
.concat(this.Port+"/")
.concat(this.DbName);
try {
Class.forName(driverName);
} catch (ClassNotFoundException e) {
System.out.println(e.toString());
}
}
Метод GetConnection:
@Override
public org.forgerock.opendj.ldap.Connection getConnection()throws ErrorResultException {
try {
con = DriverManager
.getConnection(this.ConnectionUrl,this.UserName,this.UserPass);
org.forgerock.opendj.ldap.Connection newcon = (org.forgerock.opendj.ldap.Connection) con;
System.out.println("Connection created.");
return newcon;
} catch (SQLException e) {
System.out.println(e.toString());
return null;
}
}
Вы создаете соединение MySQL JDBC с помощью драйвера MySQL. Почему вы думаете, что у вас будет что-то другое? –
@BrianAgnew Я не ожидаю ничего другого, кроме com.mysql.jdbc.JDBC4Connection от драйвера, я просто ищу лучший способ конвертировать его в тип org.forgerock.opendj.ldap.Connection. – Glenn
Так что отливка не является * конвертированием *. И я все еще подозреваю, что вы подключаетесь к базе данных MySQL и пытаетесь интерпретировать ее как сервер LDAP. –