数据库直连提示 No suitable driver found for jdbc:postgresql

news/2024/7/9 21:13:24 标签: 数据库, postgresql

背景:我在代码里使用直连的方式在数据库中创建数据库等,由于需要适配各个数据库服务所以我分别兼容了mysql、postgresql、oracal等。但是在使用过程中会出现错误:

No suitable driver found for jdbc:postgresql

 但是我再使用mysql的直连方式创建方式时没有出现问题。

代码如下:

 Connection connection = null;
        Statement statement = null;
        try {
            connection = DriverManager.getConnection(url, loginUser, loginPwd);
            statement = connection.createStatement();
            //其他代码
        } catch (Exception e){
            LOGGER.error("创建数据库信息异常", e);
            result = false;
        } finally {
            close(connection, statement);
        }

出现这个的一个原因是没有 postgresql 依赖。所以我先将依赖加入:

<dependency>
    <groupId>org.postgresql</groupId>
    <artifactId>postgresql</artifactId>
</dependency>

 但是在之后的运行中还是提示这个错误。经过排查发现DriverManager中的driver列表只有mysql的Driver。没有postgresql的Driver。但是这个Driver的注册都是在类初始化的时候自动注册的:

 所以不知道为什么他没有注册到DriverManager里面。

解决办法是我们在任意的一个地方创建一下我们需要的Driver。例如postgresql的:

 Connection connection = null;
Statement statement = null;
        try {
            Class clazz = Class.forName("org.postgresql.Driver");
            clazz.newInstance();
            connection = DriverManager.getConnection(url, loginUser, loginPwd);
            statement = connection.createStatement();
            //其他代码
        } catch (Exception e){
            LOGGER.error("创建数据库信息异常", e);
            result = false;
        } finally {
            close(connection, statement);
        }

这样就会自动执行其中的静态代码块,实现注册Driver到DriverManager的目的。


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

相关文章

Mybatis---resultMap详解

目录 一、resultMap介绍 二、自定义映射关系 一、resultMap介绍 该标签的作用是自定义映射关系。 Mybatis可以将数据库结果封装到对象中&#xff0c;是因为结果集和对象属性名相同&#xff08;也就是你写的pojo类型的参数名和数据库的字段名相同&#xff09; 但是如果当他们不…

JavaScript知识系列(2)每天10个小知识点

目录 系列文章目录JavaScript知识系列&#xff08;1&#xff09;每天10个小知识点 知识点**11. 如果 new 一个箭头函数的会怎么样****12. 箭头函数的 this 指向哪⾥&#xff1f;****13. 扩展运算符**的概念、作用、原理、特性、优点、缺点、区别、使用场景**14. Proxy**的概念、…

安装wps后,回收站右键菜单出现“恢复误删文件”,通过注册表的方式去掉。

免费的才是最贵的。垃圾流氓软件。 这个东西点开会给你下载一个叫金山数据恢复大师的看起来不知道多少年的老古董。 win R 输入regedit打开注册表按照路径寻找&#xff1a;HKEY_CLASSES_ROOT\CLSID{645FF040-5081-101B-9F08-00AA002F954E}\shellex\ContextMenuHandlers 大功…

合宙Air724UG LuatOS-Air LVGL API控件-开关 (Switch)

开关 (Switch) 示例代码 function event_handler(obj, event)if event lvgl.EVENT_VALUE_CHANGED thenprint("State", lvgl.switch_get_state(obj))end endsw1 lvgl.switch_create(lvgl.scr_act(), nil) lvgl.obj_align(sw1, nil, lvgl.ALIGN_CENTER, 0, -50) lvg…

剑指Offer、栈的压入、弹出序列

Problem: 946. 验证栈序列 入栈数组入栈&#xff0c;遇到弹出栈相同元素时弹出&#xff0c;最后判断栈是否为空。特判条件记得特判 Code class Solution {public boolean validateStackSequences(int[] pushed, int[] popped) {if(pushed.length0&&pushed.lengthpoppe…

Vue之scope属性

简介&#xff1a; 在使用Vue脚手架进行开发时&#xff0c;cli编译的时候本质上处理的是一个个文本文件&#xff0c;也就是字符串。每一个组件&#xff0c;即.Vue文件都是一个文本文件&#xff0c;里面包含着模板、组件对象实例以及style样式。组件化开发时&#xff0c;难免会出…

Centos7更新php7.2版本升级

之前搭建的LNMP环境php使用yum安装的版本为7.2&#xff0c;现有项目wordpress安装wp插件需要php7.4版本的支持&#xff0c;需要在原来的环境更新php版本。 一、卸载php7.2 yum remove php*原先的安装方式是yum安装直接yum remove就可以卸载否则需要rpm命令查询&#xff0c;按…

python 使用requests爬取百度图片并显示

爬取百度图片并显示 引言一、图片显示二、代码详解2.1 得到网页内容2.2 提取图片url2.3 图片显示 三、完整代码 引言 爬虫&#xff08;Spider&#xff09;&#xff0c;又称网络爬虫&#xff08;Web Crawler&#xff09;&#xff0c;是一种自动化程序&#xff0c;可以自动地浏览…