08 德鲁伊连接池

news/2024/5/19 0:27:50 标签: jdbc, mysql, 数据库

硬链接,不由外部配置,由代码创建默认对象并手动设定参数
软链接,由外部配置,内部工厂根据配置创建对应的数据库连接池对象

package com.aistart.tech.pool;

import com.alibaba.druid.pool.DruidDataSource;
import com.alibaba.druid.pool.DruidDataSourceFactory;
import com.alibaba.druid.pool.DruidPooledConnection;

import javax.sql.DataSource;
import java.io.IOException;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.Properties;


public class DruidDemo {

    public static void main(String[] args) throws Exception {

        //注册驱动



        //用德鲁伊替换掉
        DruidDataSource druidDataSource = new DruidDataSource();


        Properties info = new Properties();
        info.load(DruidDemo.class.getClassLoader().getResourceAsStream("com/aistart/tech/config/druid.properties"));
/*硬链接,不由外部配置,由代码创建默认对象并手动设定参数*/
//        //必须参值
//        druidDataSource.setUrl(info.getProperty("url"));
//        druidDataSource.setUsername(info.getProperty("username"));
//        druidDataSource.setPassword("root");
//        //选项参值
//        druidDataSource.setInitialSize(5);
//        druidDataSource.setMaxActive(10);
/*软链接,由外部配置,内部工厂根据配置创建对应的数据库连接池对象*/

        DataSource dataSource = DruidDataSourceFactory.createDataSource(info);
        //获取连接
        Connection connection = null;
        try {
           connection  = dataSource.getConnection();

            PreparedStatement preparedStatement = connection.prepareStatement("select * from user where user_id = 1001");


            ResultSet resultSet = preparedStatement.executeQuery();

            if (resultSet.next()){
                System.out.println("有结果");
            }else {
                System.out.println("没结果");
            }


            //获取操作对象
            //
            //

        } catch (SQLException e) {
            throw new RuntimeException(e);
        }

        //用数据库连接池回收连接
        connection.close();



    }
}


http://www.niftyadmin.cn/n/5442909.html

相关文章

代码随想录算法训练营第五十三天|LeetCode1143 最长公共子子序列、LeetCode1035 不相交的线、LeetCode53 最大子序和

1143.最长公共子序列 思路:定义dp[i][j]为以nums[i-1]结尾的子序列1,和以nums2[j-1]结尾的子序列2,他们的最长公共子序列长度。递推公式,如果nums1[i-1] nums2[j-1] , dp[i][j] dp[i-1][j-1]1。如果不相等&#xff0…

你要的个性化生信分析服务今天正式开启啦!定制你的专属解决方案!全程1v1答疑!

之前在 干货满满 | 给生信小白的入门小建议 | 掏心掏肺版 中有提到,如果小伙伴们真的想学好生信,那编程能力是必须要有的!但是可能有些小伙伴们并没有那么多的时间从头开始学习编程,又或是希望有人指导或者协助完成生信分析工作&a…

2.6 如何计算AUC?

2.6 如何计算AUC? 前情提要: 2.4 ROC曲线是什么? 2.5 如何绘制ROC曲线? AUC定义:AUC指的是ROC 曲线下的面积大小,该值能够量化地反映基于ROC曲线衡量出的模型性能。 计算方法:计算AUC值只需要…

JS判断一个元素是否在可视区域中

JS如何判断一个元素是否在可视区域中&#xff1f;下文分解。 方法一&#xff1a;利用 scrollTop、offsetTop、clientHeight 的关系 /*** 利用 offsetTop < clientHeight scrollTop;* param element* returns*/ export const isInViewPort element > {// clientHeight…

数据结构面试常见问题之Insert or Merge

&#x1f600;前言 本文将讨论如何区分插入排序和归并排序两种排序算法。我们将通过判断序列的有序性来确定使用哪种算法进行排序。具体而言&#xff0c;我们将介绍判断插入排序和归并排序的方法&#xff0c;并讨论最小和最大的能区分两种算法的序列长度。 &#x1f3e0;个人主…

SSTI漏洞详解

目录 前备知识 模块引擎&#xff1a; 模块渲染函数&#xff1a; 继承关系&#xff1a; SSTI漏洞简介 SSTI漏洞成因 SSTI漏洞原理 一些常见模块介绍 php Twig模块引擎 代码演示1 Twig模块引擎代码演示2 python flask模块 代码演示1&#xff1a; python jinja模块 代…

[Qt学习笔记]Qt实现自定义控件SwitchButton开关按钮

1、功能介绍 在项目UI中使用较多的打开/关闭的开关按钮&#xff0c;一般都是找图片去做效果&#xff0c;比如说如下的图像来表征打开或关闭。 如果想要控件有打开/关闭的动画效果或比较好的视觉效果&#xff0c;这里就可以使用自定义控件&#xff0c;使用Painter来绘制控件。软…

用户画像揭秘:那些神奇的算法,你了解多少?

在数字化浪潮汹涌的今天,用户画像已成为企业精准营销、个性化服务的关键武器。那么,究竟有哪些算法在用户画像的构建中发挥着重要作用呢?今天,就让我们一起走进用户画像的神奇世界,探索那些隐藏在背后的算法奥秘。 首先,我们要明白用户画像是什么。简单来说,用户画像就…