DBCP线程池的练习中出现 org/apache/commons/logging/LogFactory错误…

–>

DBCP线程池的练习

因为中间有其他包,所以分开截图的。

package Test_DBCP;

import java.io.IOException;
import java.io.InputStream;
import java.sql.Connection;
import java.sql.SQLException;
import java.util.Properties;

import javax.sql.DataSource;

import org.apache.commons.dbcp2.BasicDataSourceFactory;

/*
 * 1.导入jar包
 * 2.配置文件 dbcp.properties(配置数据库所连接的信息) 要放在src路径下
 * */
public class dbcpTest {
    
    private static DataSource ds;//import javax.sql.DataSource;

    static {
        
        try {
            //InputStream is=new FileinputStream(“路径是写死的”);
            //将dbcp.properties先用输入了读进来,然后load()装载,再赋给ds.
            //dbcpTest.class获取当前类的类对象,getClassLoader()获取当前类的加载器,dbcp.properties在类的根路径(src)下
            //getSystemResourceAsStream()获取类加载器中的资源。
            InputStream is = dbcpTest.class.getClassLoader().getSystemResourceAsStream(“dbcp.properties”);
            Properties properties = new Properties();
            properties.load(is);
            ds = BasicDataSourceFactory.createDataSource(properties);
            
        } catch (IOException e1) {
            // TODO Auto-generated catch block
            e1.printStackTrace();
        }
         catch (Exception e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
    }

    public static void main(String[] args) throws SQLException {
        // TODO Auto-generated method stub
        
            Connection  conn = ds.getConnection();
            System.out.println(conn);
       }

}

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

( dbcp.properties的参数设置)

#old mysql version:
#driverClassName=com.mysql.jdbc.Driver
#new mysql version:
driverClassName=com.mysql.cj.jdbc.Driver
#url=jdbc:mysql://localhost:3306/users
url=jdbc:mysql://localhost:3306/users?useUnicode=true&characterEncoding=UTF-8&useJDBCCompliantTimezoneShift=true&useLegacyDatetimeCode=false&serverTimezone=UTC&useSSL=false
username=root
password=0105
maxActive=5
initialSize=2
minIdle=2
maxWait=5000

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

Exception in thread “main” java.lang.NoClassDefFoundError: org/apache/commons/logging/LogFactory
    at org.apache.commons.dbcp2.BasicDataSourceFactory.<clinit>(BasicDataSourceFactory.java:60)
    at Test_DBCP.dbcpTest.<clinit>(dbcpTest.java:31)
Caused by: java.lang.ClassNotFoundException: org.apache.commons.logging.LogFactory
    at java.net.URLClassLoader.findClass(URLClassLoader.java:381)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
    at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:349)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
    … 2 more

是因为没有引入commons-logging-1.2.jar,将commons-logging-1.2.jar添加到build Path中就好了。

 

 

 

 

 

 

本文来源 互联网收集,文章内容系作者个人观点,不代表 本站 对观点赞同或支持。如需转载,请注明文章来源,如您发现有涉嫌抄袭侵权的内容,请联系本站核实处理。

© 版权声明

相关文章