dbcp链接池
因為關閉、啟動數據庫會花費大量的時間,所以應該使用連接池,由連接池自動管理數據庫的啟動和關閉,鏈接池在dao層和數據庫之間,負責自動管理數據庫的connection。
dbcp---鏈接池?
有兩種方法,一種是寫一個類,把要用的鏈接配置set給他, 叫做硬編碼。
另一種是寫一個配置文件,通過讀取配置文件獲得要用的鏈接配置
其實就是將
connection = DriverManager.getConnection("jdbc:mysql://localhost:3306/account", "root", "mysql");變成了?Connection conn = dataSource.getConnection();
jar包是:connection-dbcp-1.4.jar
1.硬編碼方式,寫一個類,給類set值 就叫硬編碼
變?yōu)閺男陆ǖ膅etDataSource方法中獲取
新建一個 getdatasource類
import org.apache.commons.dbcp.BasicDataSource;import javax.sql.DataSource;public class GetDataSource {public static DataSource getdatacource(){BasicDataSource dbcp=new BasicDataSource();dbcp.setDriverClassName("com.mysql.jdbc.Driver");dbcp.setUrl("jdbc:mysql://localhost:3306/account");dbcp.setUsername("root");dbcp.setPassword("mysql");System.out.println(dbcp);return dbcp;} }使用
import javax.sql.DataSource; import java.sql.Connection; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.SQLException;public class Getdatasource_test {public static void main(String[] args) throws SQLException {DataSource dataSource = GetDataSource.getdatacource();Connection conn = dataSource.getConnection();PreparedStatement prep = conn.prepareStatement("select * from account");ResultSet rs= prep.executeQuery();while(rs.next()){System.out.println("name:"+rs.getString("name"));}} }結果:
?
2.使用配置文件方式
1.新建.properties配置文件,寫四行數據庫連接的配置
driverClassName=com.mysql.jdbc.Driver url=jdbc:mysql://localhost:3306/account username=root password=mysql2.通過讀取配置文件,實例化datasource對象,并返回
package dbcp_PeiZhiWenJian;import org.apache.commons.dbcp.BasicDataSourceFactory;import javax.sql.DataSource; import java.io.File; import java.io.FileInputStream; import java.io.InputStream; import java.util.Properties; //通過讀取配置文件,實例化datasource對象,并返回 public class PeiZhi {public static DataSource getdatascource_peizhiwenjian() {DataSource dbcp=null;Properties props=new Properties();try {File file1=new File("src/dbcp_PeiZhiWenJian/PeiZhi.properites");//獲取文件InputStream inputStream=new FileInputStream(file1);//獲取輸入流props.load(inputStream);//props需要通過輸入流讀取一個.Properties文件dbcp= BasicDataSourceFactory.createDataSource(props);} catch (Exception e) {e.printStackTrace();}return dbcp;} }3.調用該方法返回數據源datasource
package dbcp_PeiZhiWenJian; import dbcp_YingBianMa.GetDataSource; import javax.sql.DataSource; import java.sql.Connection; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.SQLException;public class GetDataSource_peizhi {public static void main(String[] args) throws SQLException {DataSource dataSource = PeiZhi.getdatascource_peizhiwenjian();Connection conn = dataSource.getConnection();PreparedStatement prep = conn.prepareStatement("select * from account");ResultSet rs= prep.executeQuery();while(rs.next()){System.out.println("name:"+rs.getString("name"));}}}總結
- 上一篇: Python 注释
- 下一篇: 关联规则挖掘(南京大学复杂数据结构挖掘课