使用Idea编辑器通过Maven项目来写一个简单的DBCP数据库连接池
因为用到了连接池的工具包 所以记录一下 以便有人需要用到
- 创建Maven项目(不做详细解释了)
- 在pom文件中添加依赖 (添加数据库的依赖是因为我这里测试用到了数据库)
<dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <version>8.0.22</version> </dependency> <dependency> <groupId>commons-dbcp</groupId> <artifactId>commons-dbcp</artifactId> <version>1.4</version> </dependency> <dependency> <groupId>commons-pool</groupId> <artifactId>commons-pool</artifactId> <version>1.6</version> </dependency>
- 我这里使用的是通过配置文件来获取配置信息的方式!,所以在这里先编写dbcp.propertites
driverClassName=com.mysql.cj.jdbc.Driver url=jdbc:mysql://127.0.0.1:3306/text1?serverTimezone=Asia/Shanghai username=root password=***(写你自己的数据库的密码 注意:没有密码的话不填!,而不是写一个null)
-
编写DBCPUtil工具类
import org.apache.commons.dbcp.BasicDataSourceFactory; import javax.sql.DataSource; import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.IOException; import java.io.InputStream; import java.sql.Connection; import java.sql.ResultSet; import java.sql.SQLException; import java.sql.Statement; import java.util.Properties; public class DBCPUtil { public static DataSource ds = null; static { try { //加载配置文件 Properties pro = new Properties(); InputStream inputStream = null; //方式一 //inputStream = new FileInputStream("resources/jdbc.properties"); //方式二 inputStream = DBCPUtil.class.getClassLoader().getResourceAsStream("jdbc.properties"); pro.load(inputStream); ds = BasicDataSourceFactory.createDataSource(pro); } catch (FileNotFoundException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); }catch (Exception e) { e.printStackTrace(); } } public static Connection getConnection() { try { return ds.getConnection(); } catch (SQLException e){ e.printStackTrace() ; } return null; } public static void close(Statement st, Connection conn, ResultSet rs){ if (st!=null){ try { st.close(); } catch (SQLException e) { e.printStackTrace(); } } if (conn!=null){ try { conn.close(); } catch (SQLException e) { e.printStackTrace(); } } if (rs!=null){ try { rs.close(); } catch (SQLException e) { e.printStackTrace(); } } } }
- 编写DBCPPropertiesDemo类来测试一下
import com.buba.util.DBCPUtil; import java.sql.Connection; import java.sql.ResultSet; import java.sql.SQLException; import java.sql.Statement; public class DBCPPropertiesDemo { public static void main(String[] args) { Connection connection =null; Statement statement = null; ResultSet resultSet = null; connection = DBCPUtil.getConnection();//通过读取properties文件的形式得到的连接 try { statement = connection.createStatement(); String sql = "select * from login"; resultSet = statement.executeQuery(sql); while(resultSet.next()){ System.out.println("username"+resultSet.getString("username")); } } catch (SQLException e) { e.printStackTrace(); }finally { DBCPUtil.close(statement,connection,resultSet); } } }
- 启动main方法测试