DBCP 連接池的使用
阿新 • • 發佈:2017-06-18
cpu get private created pri ret root class rep
1、配置文件
db.properties
driver=com.mysql.jdbc.Driver url=jdbc:mysql://localhost:3306/web08?useUnicode=true&characterEncoding=utf8 username=root password=root
2、DBCP連接池 獲取連接
DBCPUtils.java
package cn.itheima.jdbc.utils; import java.io.InputStream; import java.sql.Connection; import java.sql.SQLException;import java.util.Properties; import javax.sql.DataSource; import org.apache.commons.dbcp.BasicDataSourceFactory; public class DBCPUtils { private static DataSource dataSource; static{ try { //1.加載找properties文件輸入流 InputStream is = DBCPUtils.class.getClassLoader().getResourceAsStream("db.properties");//2.加載輸入流 Properties props = new Properties(); props.load(is); //3.創建數據源 dataSource = BasicDataSourceFactory.createDataSource(props); } catch (Exception e) { throw new RuntimeException(e); } } public static DataSource getDataSource(){return dataSource; } public static Connection getConnection(){ try { return dataSource.getConnection(); } catch (SQLException e) { throw new RuntimeException(e); } } }
3、測試類
TestDBCP.java
package cn.itheima.jdbc.test; import java.sql.Connection; import java.sql.PreparedStatement; import org.junit.Test; import cn.itheima.jdbc.utils.DBCPUtils; public class TestDBCP { @Test public void testUpdateUserById(){ Connection conn = null; PreparedStatement pstmt = null; try { conn = DBCPUtils.getConnection(); String sql ="update tbl_user set upassword=? where uid=?"; pstmt= conn.prepareStatement(sql); pstmt.setString(1, "柳巖"); pstmt.setInt(2, 20); int rows = pstmt.executeUpdate(); if(rows>0){ System.out.println("更新成功!"); }else{ System.out.println("更新失敗!"); } } catch (Exception e) { throw new RuntimeException(e); } } }
DBCP 連接池的使用