下面是详细的讲解:
1. 前言
数据库连接是Java应用程序开发的必需环节之一,因为Java应用程序经常需要与数据库打交道。在Java中,可以使用Java内置的JDBC API来实现与数据库的连接操作。不过,每次手动编写连接代码显然不太现实,因此我们通常会使用一些现成的数据库连接工具类来完成这些操作。本文就是讲解如何编写一个通用的数据库连接类。
2. 设计思路
基于JDBC API来构建一个通用的数据库连接工具类,需要完成以下几个任务:
- 封装数据库连接信息,即主机IP地址、端口号、用户名和密码,以及数据库名称;
- 实现数据库连接的开启和关闭功能,并能够自动回收连接;
- 支持多种常用数据库连接方式,例如MySQL、Oracle、SQL Server等;
- 对外提供简单易用的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;
}
}
}
代码说明如下:
getConnection()
方法用于获取数据库连接对象;如果连接对象已经存在且未关闭,则直接返回;否则获取新的连接对象;closeConnection()
方法用于关闭连接对象,并将变量值置空;- 构造函数中传入的参数包括:数据库连接字符串、用户名、密码和驱动程序类名;
- 该类中没有提供获取数据源、创建 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技术站