欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

解决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版本的类库就会消除错误。

相关标签: bug解决