java oracle 连接池_oracle数据库连接池配置

java oracle 连接池_oracle数据库连接池配置频繁的创建和销毁数据库连接即消耗系统资源又使得程序效率低下,在这种情况下,出现了使用数据库连接池的方法,类似于线程池,初期创建一定数量的连接供应用程序使用,当使用完成后将其归还给连接池而不是销毁,这样有效的提高了资源利用率,下面分享一种简单的创建连接池的方法:1.首先,我们新建一个maven工程,并且导入ojdbc,dbcp,junit三个包待用2.然后,我…

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺

        频繁的创建和销毁数据库连接即消耗系统资源又使得程序效率低下,在这种情况下,出现了使用数据库连接池的方法,类似于线程池,初期创建一定数量的连接供应用程序使用,当使用完成后将其归还给连接池而不是销毁,这样有效的提高了资源利用率,下面分享一种简单的创建连接池的方法:

1.首先,我们新建一个maven工程,并且导入ojdbc  , dbcp  , junit三个包待用

创建工程并导包

2.然后,我们在src/main/resources目录下创建一个文件db,properties用以存放一些配置参数等,以后更换数据库密码什么的只需要改此文件而不是改动代码。

db.properties文件代码如下

# connection parameters
driver=oracle.jdbc.driver.OracleDriver    (数据库驱动类)



url=jdbc:oracle:thin:@localhost:1521:xe 

//jdbc协议:数据库子协议:主机:端口/连接的数据库


user=system
pwd=root

#这个没什么说的,用户名密码,自己创建数据库的时候都设置过

# datasouce parameters
initSize=1
maxSize=2

#最大连接数,这个不用管

driver的选取:

java oracle 连接池_oracle数据库连接池配置

java oracle 连接池_oracle数据库连接池配置

以上就算是准备工作

下面开始敲代码了

在src/main/java 下创建一个包,再创建一个类,名字自己取

补充两点1.Properties类专门用来读取properties文件
               2.Properties类本质上就是Map

编写如下图代码读取我们在db.properties文件中设置的参数,注意,这里我们创建的是连接池,这些内容

我们只需要加载一次,所以写在static代码块中

代码:

package util;

import java.io.IOException;
import java.sql.Connection;
import java.sql.SQLException;
import java.util.Properties;

import org.apache.tomcat.dbcp.dbcp.BasicDataSource;

public class DBUtil {
    //连接池对象
    private static BasicDataSource ds;
    //加载参数
    static{
        Properties p = new Properties();
        try {
            p.load(DBUtil.class.getClassLoader().getResourceAsStream("db.properties"));
            String driver = p.getProperty("driver");
            String url = p.getProperty("url");
            String user = p.getProperty("user");
            String pwd = p.getProperty("pwd");
            String initSize = p.getProperty("initSize");
            String maxSize = p.getProperty("maxSize");
            //创建连接池
            ds = new BasicDataSource();
            //设置参数
            ds.setDriverClassName(driver);
            ds.setUrl(url);
            ds.setUsername(user);
            ds.setPassword(pwd);
            ds.setInitialSize(new Integer(initSize));
            ds.setMaxActive(new Integer(maxSize));
        } catch (IOException e) {
            e.printStackTrace();
            throw new RuntimeException("加载配置文件失败",e);
        }
    }
    /*
     * 以上就是将配置文件里的参数全部读取出来,接下来就是要
     * 写两个方法,一个是用来创建连接的,一个关闭连接
     * */
    public static Connection getConnection() throws SQLException{
        return ds.getConnection();
    }
    
    public static void close(Connection conn){
        if (conn != null) {
            try {
                conn.close();
            } catch (SQLException e) {
                e.printStackTrace();
                throw new RuntimeException("关闭连接失败",e);
            }
        }
    }
}

写完之后,基本工作就完成了,下面我们在src/test/resources下创建一个测试类来检测我们的代码

这里我们使用的是Junit做单元测试

代码:

package test;

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

import org.junit.Test;

import util.DBUtil;

public class Testdb {
    @Test
    public void test01(){
        Connection conn = null;
        try {
            conn = DBUtil.getConnection();
            System.out.println("OK!");
        } catch (SQLException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }finally{
            DBUtil.close(conn);
        }
        
    }
}

运行上述代码得到如图所示的结果说明我们的代码是正确的

java oracle 连接池_oracle数据库连接池配置

并且控制台输出OK!

如果出现错误请检查数据库驱动类是否填写正确,数据库服务是否正常启动,

第一次写文章,纯手打,不喜勿喷谢谢,请各位大神多多指教

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

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/193222.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 简单搭建一个直播服务器

    简单搭建一个直播服务器一、动手搭建流媒体服务器1、下载srsv2.0_r8,下载地址是:https://codeload.github.com/ossrs/srs/zip/v2.0-r8建议用迅雷下载,个人感觉比较快2、下载下来后解压该文件(我是在我window电脑解压的)并上传====>使用上传工具将该文件夹上传到我的linux虚拟机中,并改名为srs3、开始安装进入到tru…

    2022年5月26日
    27
  • 屏幕可以截图识别文字?我来教你

    屏幕可以截图识别文字?我来教你我们经常浏览一些网页的时候,看到一些优美的文字,想将它复制下来,却发现粘贴的时候都是一些乱码之类的,以前我估计你们大多数的人都会选择用手抄,但是今天我来了,我给大家介绍一个非常有用的一个方法,让你完全不用手抄,那就是截图识别啦!接下来我就给大家介绍一下步骤。![在这里插入图片描述](https://img-blog.csdnimg.cn/20190621180907878.jpg?x…

    2022年6月6日
    34
  • nginx调用PHP有sock方式和端口方式

    nginx调用PHP有sock方式和端口方式

    2021年10月19日
    40
  • 九种边缘检测算法_边缘检测和边缘提取

    九种边缘检测算法_边缘检测和边缘提取0.绪论图像边缘是图像的重要特征,是图像中特性(如像素灰度、纹理等)分布的不连续处,图像周围特性有阶跃变化或屋脊状变化的那些像素集合。图像的边缘部分集中了图像的大部分信息,一幅图像的边缘结构与特点往往是决定图像特质的重要部分。图像边缘的另一个定义是指其周围像素灰度变化不连续的那些像素的集合。边缘广泛存在于物体与背景之间、物体与物体之间,因此,边缘是图像分割、图像理解及图像识别的重要特征。图像边缘检测主要用于增强图像中的轮廓边缘、细节以及灰度跳变部分,形成完整的物体边界,达到将物体从图像中分离出来或将表

    2025年7月11日
    3
  • asp.net core 阿里云消息服务(Message Service,原MQS)发送接口的实现

    asp.net core 阿里云消息服务(Message Service,原MQS)发送接口的实现最近在后台处理订单统计等相关功能用到了大力的mqs,由于官方没有实现asp.netcore的sdk,这里简单实现了发送信息的功能,有兴趣的可以参考实现其他相关功能usingSystem;usingSystem.Collections.Generic;usingSystem.Linq;usingSystem.Net.Http;usingSystem.Net.Http.Headers;…

    2025年7月1日
    3
  • 老庄结构设计官网_互联网颗粒度的名词解释

    老庄结构设计官网_互联网颗粒度的名词解释    本文是对上篇MGN论文阅读做一个详细的补充,主要补充其结构设计及技术实现细节。文章内容整合来自云从科技资深算法研究员袁余锋老师,通过以下四个方面来讲解本次课题:1、ReID的定义及技术难点;2、常用数据集与评价指标简介;3、多粒度网络(MGN)的结构设计与技术实现;4、ReID在行人跟踪中的应用分析与技术展望ReID是行人智能认知的其中一个研究方向,行人智能认知是人脸识别之后比较重要…

    2022年10月6日
    4

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号