gpt4 book ai didi

java - 转换 JDBC 连接

转载 作者:行者123 更新时间:2023-12-01 18:53:24 26 4
gpt4 key购买 nike

我正在为一个项目开发一个新模块,该模块应使用 JDBC 驱动程序连接到 SQL 数据库。我需要使用方法 getConnection() 实现连接接口(interface),该方法的返回类型为 org.forgerock.opendj.ldap.Connection。但是,JDBC 驱动程序返回 com.mysql.jdbc.JDBC4Connection 类型的连接。类型转换给我以下错误:

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;
}


}

最佳答案

简短的回答你不能。这就是原因

org.forgerock.opendj.ldap.Connection 不扩展 java.sql.Connection

这应该为您提供更多 Java 中允许的信息

关于java - 转换 JDBC 连接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15020801/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com