孙肖宁

DBCP连接池的使用
DBCP是tomcat内置的连接池。使用方法:导入jar包 书写配置文件配置文件名称:*.properties(文...
扫描右侧二维码阅读全文
15
2019/02

DBCP连接池的使用

DBCP是tomcat内置的连接池。
使用方法:

  • 导入jar包
    1.png
  • 书写配置文件

    • 配置文件名称:*.properties(文件名任意,但是扩展名固定)。
    • 位置任意,一般放在src目录下。
    • 不能写中文。
    • 内容(其他配置也写在这里面):
       driver=com.mysql.jdbc.Driver
       url=jdbc:mysql://127.0.0.1:3306/ning
       username=root
       password=root
  • 工具类:
package com.sunxiaoning.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;

/**
 * DBCP工具类
 * @author sunxiaoning
 *
 */
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();
        }
     }
    
    /**
     * 获取数据源(连接池)
     * @return
     */
    public static DataSource getDataSource() {
        return dataSource;
    }
    
    /**
     * 获得连接
     * @return
     */
    public static Connection getConnection() {
        try {
            return dataSource.getConnection();
        } catch (SQLException e) {
            throw new RuntimeException();
        }
    }
}
  • 测试类
package com.sunxiaoning.jdbc.test;

import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.SQLException;

import org.junit.jupiter.api.Test;

import com.sunxiaoning.jdbc.utils.DBCPUtils;

public class TestDBCP {
    
    @Test
    public void testUpdateByid() {
        Connection conn = null;
        PreparedStatement pstmt = null;
        try {
            conn = DBCPUtils.getConnection();
            String sql = "update users set upwd =? where uid =?";
            pstmt = conn.prepareStatement(sql);
            pstmt.setString(1, "222");
            pstmt.setInt(2, 1);
            int rows = pstmt.executeUpdate();
            if(rows>0) {
                System.out.println("更新成功");
            }else {
                System.out.println("更新失败");
            }
        } catch (Exception e) {
            throw new RuntimeException();
        }finally {
            if (conn!=null) {
                try {
                    conn.close();
                } catch (SQLException e) {
                    e.printStackTrace();
                }
            }
            
            if(pstmt!=null) {
                try {
                    conn.close();
                } catch (SQLException e) {
                    e.printStackTrace();
                }
            }
            
        }
        
    }
}
Last modification:February 15th, 2019 at 08:54 am
If you think my article is useful to you, please feel free to appreciate

Leave a Comment