解决javax.sql.DataSource导入时报错
程序员文章站
2022-06-05 15:56:30
...
在利用工厂类获取连接时需要导入一个包javax.sql.DataSource时有可能会报错。
整个类代码如下:
import java.io.InputStream;
import java.sql.Connection;
import java.util.Properties;
import javax.sql.DataSource;//这行报错
import org.apache.commons.dbcp.BasicDataSourceFactory;
public class ConnectionUtils {
static Connection connection=null;
//dbcp使用配置文件方式来获取连接
public static Connection getConnection3() {
try {
//定义一个属性集
Properties properties=new Properties();
//ConnectionUtils.class.getClassLoader()---一个类的类加载器
//通过类加载器获取一个文件流
InputStream inputStream = ConnectionUtils.class.getClassLoader().getResourceAsStream("dbcp.properties");
//把配置文件load进属性集
properties.load(inputStream);
//使用dbcp的datasource的工厂类来生成datasource
DataSource createDataSource = BasicDataSourceFactory.createDataSource(properties);//这行也会报错,无法识别DataSource这个类,因为导入失败了
connection=createDataSource.getConnection();
} catch (Exception e) {
// TODO: handle exception
}
return connection;
}
}
这个编译错误很是折腾人,明明别人就成功导入了,自己却不行。错误提示为:
Access restriction: The type DataSource is not accessible due to restriction on required library C:\Program Files\Java\jre1.8.0_192\lib\rt.jar
其实是因为ide版本太低,有时候创建项目Project时,默认加载的类库会加载成1.1版本的类库,当然不包括上面需要导入的java.sql.DataSource类,所以先将自动加载的类库remove掉,重新进行加载,加载1.8版本的类库就会消除错误。