我正在尝试开发一个连接到Oracle数据库的Java EE应用程序。 我正在使用ojdbc6 jar。我正在从属性文件中读取数据库信息。
package com.varun.util;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.InputStream;
import java.sql.DriverManager;
import java.sql.SQLException;
import java.util.Properties;
import com.arjuna.ats.internal.arjuna.recovery.Connection;
public class DbUtil {
private static Connection connection = null;
public static Connection getConnection(){
if(connection!=null)
{
return connection;
}
else
{
try{
Properties prop=new Properties();
InputStream inputStream=DbUtil.class.getClassLoader().getResourceAsStream("/db.properties");
prop.load(inputStream);
String driver = prop.getProperty("driver");
String url = prop.getProperty("url");
String user = prop.getProperty("user");
String password = prop.getProperty("password");
Class.forName(driver);
connection = (Connection) DriverManager.getConnection(url, user, password);
}catch(ClassNotFoundException e)
{
e.printStackTrace();
}
catch (SQLException e) {
e.printStackTrace();
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
return connection;
}
}
}
我得到一个例外说:
java.lang.ClassCastException:oracle.jdbc.driver.T4CConnection不能 被投射到com.arjuna.ats.internal.arjuna.recovery.Connection
我没有得到根本原因。我也改变了jar文件,但它仍然抛出相同的错误。
答案 0 :(得分:2)
尝试从
更改导入import com.arjuna.ats.internal.arjuna.recovery.Connection;
到
import java.sql.Connection;
答案 1 :(得分:1)
修复Connection
的导入。它不能是com.arjuna.ats.internal.arjuna.recovery.Connection
。
答案 2 :(得分:1)
DriverManager.getConnection(url, user, password)
返回'oracle.jdbc.driver.T4CConnection'的实例,并且您正在尝试将其强制转换为'com.arjuna.ats.internal.arjuna.recovery.Connection'。这是导致错误的原因。
答案 3 :(得分:1)
我认为问题在于您的导入,请检查您的代码中是否包含此导入内容:
import com.arjuna.ats.internal.arjuna.recovery.Connection;
应该是:
import java.sql.Connection;
答案 4 :(得分:0)
导入问题。
使用java.sql.Connection。
问题得到解决。