数据库连接池

如果你不相信努力和时光,那么成果就会是第一个选择辜负你的。不要去否定你自己的过去,也不要用你的过去牵扯你现在的努力和对未来的展望。不是因为拥有希望你才去努力,而是去努力了,你才有可能看到希望的光芒。数据库连接池,希望对大家有帮助,欢迎收藏,转发!站点地址:www.bmabk.com,来源:原文

数据库连接池

  • 为了提升服务器性能,降低服务器资源消耗
  • 第三方连接池框架
    • DBCP
    • C3P0
    • druid 阿里巴巴开源的

基本使用步骤

public class DruidPool {
    public static void main(String[] args) {
        //1,创建一个数据源对象
        DruidDataSource druidDataSource = new DruidDataSource();
        // 2, 配置数据源
        druidDataSource.setUsername("root");
        druidDataSource.setPassword("666");
        druidDataSource.setDriverClassName("com.mysql.jdbc.Driver");
        druidDataSource.setUrl("jdbc:mysql://127.0.0.1:3306/super_market?characterEncoding=utf-8");
        try {
            //3,获取一个数据库连接
            DruidPooledConnection connection = druidDataSource.getConnection();
            System.out.println(connection);
            // 4, 归还到连接池中
            connection.close();
            // 5,连接池关闭
            druidDataSource.close();
        } catch (SQLException e) {
            e.printStackTrace();
        }
    }
}

改用配置文件
db.properites 文件内容,key与代码中保持一致

druid.url=jdbc:mysql://127.0.0.1:3306/super_market?characterEncoding=utf-8
druid.username=root
druid.password=666
druid.driverClassName=com.mysql.jdbc.Driver
public static void main(String[] args) {
        //1,创建一个数据源对象
        DruidDataSource druidDataSource = new DruidDataSource();
        // 2, 给数据源配置连接信息
        Properties properties = new Properties();
        try {
            properties.load(DruidPool.class.getClassLoader().getResourceAsStream("db.properties"));
            // 根据properties进行配置
            druidDataSource.configFromPropety(properties);
        } catch (IOException e) {
            e.printStackTrace();
        }
        try {
            //3,获取一个数据库连接
            DruidPooledConnection connection = druidDataSource.getConnection();
            System.out.println(connection);
            // 4, 归还到连接池中
            connection.close();
            // 5,连接池关闭
            druidDataSource.close();
        } catch (SQLException e) {
            e.printStackTrace();
        }
    }

工具类使用数据库连接池改进

public class DbUtil {
    private static Properties properties;
    private static DruidDataSource druidDataSource;

    static {
        properties = new Properties();
        druidDataSource = new DruidDataSource();
        try {
            properties.load(DbUtil.class.getClassLoader().getResourceAsStream("db.properties"));
            druidDataSource.configFromPropety(properties);
        } catch (IOException e) {
            e.printStackTrace();
        }
    }

    public static void closePool() {
        //关闭连接池
        druidDataSource.close();
    }

    public static Connection getConn() throws ClassNotFoundException, SQLException, IOException {
        return druidDataSource.getConnection();
    }
 }

配置文件

# characterEncoding是字符编码设置
druid.url=jdbc:mysql://127.0.0.1:3306/super_market?characterEncoding=utf-8
druid.username=root
druid.password=666
druid.driverClassName=com.mysql.jdbc.Driver

# 初始化大小
druid.initialSize=2
#最大连接个数
druid.maxActive=10
#最小连接个数
druid.minIdle=2
# 单位是毫秒 获取连接时的最大等待时间
druid.maxWait=5000

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/192932.html

(0)
飞熊的头像飞熊bm

相关推荐

发表回复

登录后才能评论
极客之音——专业性很强的中文编程技术网站,欢迎收藏到浏览器,订阅我们!