DBCP连接池
连接池:
怎么用?
不用连接池
Class.forName();
Connection connection=DriverManager.getConnection();//连接指向数据库
用连接池的核心:将连接的指向改了,现在指向的是数据源,而不是数据库
...->DataSourse ds=...
Connection connection=ds.getConnection();//指向的是数据域
数据库访问核心->pstmt/stmt->connection->1.直接数据库2.数据源 ds.getConnection()
PreparedStatement pstmt=connection.preparedStatement();
commons-dbcp-1.4.jar、commons-pool.jar
dbcp获取ds(硬编码方式): BasicDataSource、BasicDataSourceFactory
BasicDataSource dbcp=new BasicDataSource();
dbcp.setDriverClassName("oracle.jdbc.driver.OracleDriver");
dbcp.setUrl("jdbc:oracle:thin:@127.0.0.1:1521:mldn");
dbcp.setUsername("scott");
dbcp.setPassword("tiger");
dbcp.setInitialSize(20);
dbcp.setMaxActive(10);
BasicDataSource方式:配置方式(.properties文件,编写方式key=value)
dbcpconfig.properties
DataSource dbcp=null;
Properties props=new Properties();
InputStream input = new DBCPDemo().getClass().getClassLoader().getResourceAsStream("dbcpconfig.properties");
props.load(input);
//只需要记住以下一句
dbcp= BasicDataSourceFactory.createDataSource(props);
通用:NoClassDefFoundError异常 说明少jar
DataSource是所有sql数据源的上级类。BasicDataSource是dbcp类型的数据源