java常用工具类之数据库连接类(可以连接多种数据库)

下面是详细的讲解:

1. 前言

数据库连接是Java应用程序开发的必需环节之一,因为Java应用程序经常需要与数据库打交道。在Java中,可以使用Java内置的JDBC API来实现与数据库的连接操作。不过,每次手动编写连接代码显然不太现实,因此我们通常会使用一些现成的数据库连接工具类来完成这些操作。本文就是讲解如何编写一个通用的数据库连接类。

2. 设计思路

基于JDBC API来构建一个通用的数据库连接工具类,需要完成以下几个任务:

  1. 封装数据库连接信息,即主机IP地址、端口号、用户名和密码,以及数据库名称;
  2. 实现数据库连接的开启和关闭功能,并能够自动回收连接;
  3. 支持多种常用数据库连接方式,例如MySQL、Oracle、SQL Server等;
  4. 对外提供简单易用的API接口,使得Java应用程序能够方便地使用该工具类。

3. 代码实现

接下来我们就来实现上述功能,代码如下:

import java.sql.*;

public class DBUtils {
    private Connection conn;
    private String url;
    private String user;
    private String password;
    private String driverClass;

    public DBUtils(String url, String user, String password, String driverClass) throws ClassNotFoundException {
        this.url = url;
        this.user = user;
        this.password = password;
        this.driverClass = driverClass;
        Class.forName(driverClass);
    }

    public synchronized Connection getConnection() throws SQLException {
        if (conn != null && !conn.isClosed()) {
            return conn;
        }
        conn = DriverManager.getConnection(url, user, password);
        return conn;
    }

    public synchronized void closeConnection() throws SQLException {
        if (conn != null && !conn.isClosed()) {
            conn.close();
            conn = null;
        }
    }
}

代码说明如下:

  1. getConnection() 方法用于获取数据库连接对象;如果连接对象已经存在且未关闭,则直接返回;否则获取新的连接对象;
  2. closeConnection() 方法用于关闭连接对象,并将变量值置空;
  3. 构造函数中传入的参数包括:数据库连接字符串、用户名、密码和驱动程序类名;
  4. 该类中没有提供获取数据源、创建 Statement、PreparedStatement 等其他常用方法,这些方法可以通过返回的连接对象自行获取。

4. 示例

下面是两个简单例子,分别展示如何使用该数据库连接工具类来连接MySQL和Oracle数据库:

4.1 MySQL 连接示例

import java.sql.SQLException;

public class TestDBUtilsMySQL {
    public static void main(String[] args) throws SQLException, ClassNotFoundException {
        String url = "jdbc:mysql://localhost:3306/test?useSSL=false";
        String user = "root";
        String password = "root";
        String driverClass = "com.mysql.jdbc.Driver";

        DBUtils dbUtils = new DBUtils(url, user, password, driverClass);

        System.out.println("MySQL Connection Established");

        dbUtils.closeConnection();
    }
}

MySQL 连接字符串的格式为:jdbc:mysql://ip:port/databaseName。其中,ip 是 MySQL 数据库所在的主机 IP 地址;port 是 MySQL 服务器监听的端口号,默认是 3306;databaseName 是具体的数据库名称。useSSL=false 表示不启用 SSL 连接。

4.2 Oracle 连接示例

import java.sql.SQLException;

public class TestDBUtilsOracle {
    public static void main(String[] args) throws SQLException, ClassNotFoundException {
        String url = "jdbc:oracle:thin:@192.168.0.200:1521:ORCL";
        String user = "scott";
        String password = "tiger";
        String driverClass = "oracle.jdbc.driver.OracleDriver";

        DBUtils dbUtils = new DBUtils(url, user, password, driverClass);

        System.out.println("Oracle Connection Established");

        dbUtils.closeConnection();
    }
}

Oracle 连接字符串的格式为:jdbc:oracle:thin:@ip:port:databaseName。其中,ip 和 port 分别是 Oracle 数据库所在的主机 IP 地址和监听的端口号;databaseName 是 Oracle 数据库的实例名。

5. 总结

通过本文的讲解,我们了解了如何构建一个通用的数据库连接工具类。该工具类支持多种常用的数据库连接,例如MySQL、Oracle、SQL Server等。通过该工具类,我们可以轻松地获取数据库连接对象,并能够自动回收连接,确保程序的可靠性和高性能。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:java常用工具类之数据库连接类(可以连接多种数据库) - Python技术站

(0)
上一篇 2023年5月19日
下一篇 2023年5月19日

相关文章

  • 教你正确的Java扩展方法示例详解

    您好,感谢您对“教你正确的Java扩展方法示例详解”的关注。这篇文章旨在教给Java开发者如何正确地编写扩展方法,并提供了示例来帮助读者更好地理解。 什么是扩展方法 在Java中,扩展方法指的是在已有类中添加新的方法而不改变原有类的代码。这种方法使用起来非常方便,可以为已有的类添加额外的功能。 编写扩展方法的步骤 编写扩展方法的步骤分为以下几个: 创建一个类…

    Java 2023年5月26日
    00
  • SpringBoot集成Jpa对数据进行排序、分页、条件查询和过滤操作

    下面是关于“SpringBoot集成Jpa对数据进行排序、分页、条件查询和过滤操作”的完整攻略。 简介 首先,SpringBoot是一个基于Spring框架的快速开发框架。而Jpa则是Java持久层API的规范,通过使用Jpa规范,我们可以很方便地实现与数据库的交互。本文主要介绍如何使用SpringBoot集成Jpa,对数据进行排序、分页、条件查询和过滤操作…

    Java 2023年5月20日
    00
  • java中flatMap用法完整示例

    下面是“java中flatMap用法完整示例”的完整攻略。 什么是flatMap flatMap 是一个操作符,它可以将一个 Observable 发射的数据集合转换成一个新的 Observable 对象,其中每个数据被变换为其他的数据(也可以是 0 个或多个数据)后,再重新发射出去。这些数据最终是被合并在一起作为一个单一的、合并后的数据序列进行发射的。 f…

    Java 2023年5月27日
    00
  • java实现简单银行管理系统

    Java实现简单银行管理系统攻略 概述 银行管理系统是一个非常重要的系统,这个系统可以帮助银行进行一系列的业务管理和数据管理,包括客户管理、账户管理、贷款管理等等。Java语言是一种功能强大、易于学习和使用的编程语言,在开发这个简单的银行管理系统方面是一个非常好的选择。 接下来我们将通过以下几个步骤来完成这个Java实现简单银行管理系统的攻略。 定义数据模型…

    Java 2023年5月18日
    00
  • SpringMVC基于注解方式实现上传下载

    SpringMVC基于注解方式实现上传下载 SpringMVC是一种基于Java的Web框架,它可以帮助我们快速地开发Web用程序。本文将详细介绍如何使用SpringMVC基于注解方式实现上传下载,并提供两个示例说明。 上传文件 在SpringMVC中,我们可以使用MultipartFile类来处理上传的文件。以下是一个上传文件的示例。 步骤1:配置web.…

    Java 2023年5月17日
    00
  • Java基础学习之关键字和变量数据类型的那些事

    Java基础学习之关键字和变量数据类型的那些事 一、关键字 Java中有一些单词是具有特殊含义的,这些单词被称为关键字。我们不能将关键字用作标识符(变量名、方法名等)。Java中共有50个关键字,其中一部分已经不再使用,比如goto、const等。下面列出常用的关键字: abstract default if private this boolean do …

    Java 2023年5月20日
    00
  • Java基于余弦方法实现的计算相似度算法示例

    Java基于余弦方法实现的计算相似度算法示例 在这个示例中,我们将介绍如何使用Java基于余弦方法实现计算相似度算法。这里我们主要使用了文本相似度算法,可以在多个领域中应用,例如自然语言处理、信息检索、推荐系统等。 什么是文本相似度算法? 文本相似度算法是指通过计算两个文本之间的相似度值来判断它们之间的相关性。在这个示例中,我们主要使用了余弦相似度算法来计算…

    Java 2023年5月19日
    00
  • Java servlet执行流程代码实例

    Java Servlet是Java编写的服务器端程序,它可以接收来自客户端(如浏览器、Android等)的请求并生成响应,通常用于开发Web应用程序。本篇攻略将详细讲解Java Servlet执行流程,并提供两个示例代码来说明。 Servlet执行流程 任何一个Servlet处理一个客户端请求的完整处理过程,都可以分为6个步骤: 客户端向服务器发送请求。 服…

    Java 2023年6月15日
    00
合作推广
合作推广
分享本页
返回顶部