静态方式
package com.ighost.jdbc;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
/**
*
* 数据库操作公共类
*
* @author ghost
*
*/
public final class JDBCUtil {
private static String url = "jdbc:mysql://localhost:3306/jdbc";
private static String username = "root";
private static String password = "";
// 构造函数私有话 不允许构造
private JDBCUtil() {
}
// 注册驱动
static {
try {
Class.forName("com.mysql.jdbc.Driver");
} catch (ClassNotFoundException e) {
throw new ExceptionInInitializerError(e);
}
}
// 获取连接
public static Connection getConnection() throws SQLException {
return DriverManager.getConnection(url, username, password);
}
// 释放资源
public static void free(ResultSet rs, Statement stmt, Connection conn) {
try {
if (rs != null) {
rs.close();
}
} catch (SQLException e) {
e.printStackTrace();
} finally {
try {
if (stmt != null) {
stmt.close();
}
} catch (SQLException e) {
e.printStackTrace();
} finally {
try {
if (conn != null) {
conn.close();
}
} catch (SQLException e) {
e.printStackTrace();
}
}
}
}
}
单例方式
package com.ighost.jdbc;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
/**
*
* 数据库操作公共类 单例模式 虚拟机里只存在一个这样的实例 通过getInstance方式获取对象
*
* @author ghost
*
*/
public final class JDBCUtilSingle {
private String url = "jdbc:mysql://localhost:3306/jdbc";
private String username = "root";
private String password = "";
// 构造函数私有话 不允许构造
private JDBCUtilSingle() {
}
// 构造私有实例
// private static JDBCUtilSingle instance = new JDBCUtilSingle();
private static JDBCUtilSingle instance = null;
public static JDBCUtilSingle getInstance() {
//延迟加载
if (instance == null) {
//加锁 防止线程并发
synchronized (JDBCUtilSingle.class) {
//必须有的判断
if(instance == null){
instance = new JDBCUtilSingle();
}
}
}
return instance;
}
// 注册驱动
static {
try {
Class.forName("com.mysql.jdbc.Driver");
} catch (ClassNotFoundException e) {
throw new ExceptionInInitializerError(e);
}
}
// 获取连接
public Connection getConnection() throws SQLException {
return DriverManager.getConnection(instance.url, instance.username,
instance.password);
}
// 释放资源
public static void free(ResultSet rs, Statement stmt, Connection conn) {
try {
if (rs != null) {
rs.close();
}
} catch (SQLException e) {
e.printStackTrace();
} finally {
try {
if (stmt != null) {
stmt.close();
}
} catch (SQLException e) {
e.printStackTrace();
} finally {
try {
if (conn != null) {
conn.close();
}
} catch (SQLException e) {
e.printStackTrace();
}
}
}
}
}
分享到:
相关推荐
综上所述,"Oracle jdbc 单例 工具类"主要涉及Oracle数据库的JDBC连接管理,通过单例模式实现连接的高效复用,以及在Java环境中与Oracle数据库交互的基础知识。理解这些概念对于任何使用Java进行数据库开发的程序员...
具体实现方式可能在名为“jdbc工具类连接单例模式0914”的文件中详细描述,包括如何初始化连接池,如何处理并发场景下的连接获取与释放,以及可能的异常处理机制。 总之,通过结合JDBC连接工具类和单例设计模式,这...
### JDBC的连接实例与单例模式的写法详解 在Java开发中,JDBC(Java Database Connectivity)是一种用于执行SQL语句的Java API,可以为多种关系数据库提供统一访问,它由一组用Java语言编写的类和接口组成。本文将...
本资源摘要信息主要介绍了 Java 数据库连接(JDBC)的相关知识,包括单例模式、JDBC 概述、JDBC 实现原理、JDBC 开发主要类和 JDBC 开发步骤等内容。 单例模式 单例模式是一种常用的软件设计模式,通过单例模式...
`JdbcUtil`类是开发者为了简化JDBC操作而自定义的一个工具类,它封装了JDBC的一些常用功能,以便更方便、高效地进行数据库交互。下面我们将详细探讨JDBC的基础知识,以及`JdbcUtil`类的设计思想和实现方法。 首先,...
- **DBManager.java**:可能是数据库连接管理类,用于创建和管理数据库连接,比如实现单例模式以避免资源浪费。 - **BookDAO.java**:DAO接口,定义了操作数据库的方法签名。 - **BookDAOFactory.java**:工厂模式的...
这主要涉及两个核心方面:一是使用单例模式管理数据库连接(通过`DBUtil`类实现),二是设计登录界面并处理登录逻辑(通过`LoginForm`类实现)。 ### 单例模式下数据库连接管理 在Java中,单例模式是一种常用的...
工厂模式的应用场景广泛,例如在JDBC连接数据库时,通过DriverManager.getConnection()方法创建数据库连接,这就是一种简单的工厂模式。同时,工厂模式可以用来替代单例模式,例如在需要延迟初始化或对象池(如缓存...
在Oracle环境中,我们需要Oracle的JDBC驱动,如ojdbc.jar,来建立与Oracle数据库的连接。 "proxool源码包"则提供了Proxool的源代码,这对于开发者来说是极其宝贵的资源。通过阅读源码,开发者可以深入理解Proxool的...
- 作用:复用数据库连接,减少频繁建立和关闭连接所带来的开销,提高响应速度。 - 关键组件:连接池管理器、连接工厂、连接对象。 3. **实现要点**: - **初始化**:在类加载或第一次请求时初始化单例实例,并...
- 自定义异常类处理JDBC操作中可能出现的问题。 - 通过异常抛出机制传递错误信息。 #### 十四、JDBC事务处理 - **概念**:事务是一系列操作的集合,要么全部成功,要么全部失败。 - **JDBC事务管理**: - 使用`...
这种模式在资源管理、缓存、日志记录等场景中广泛应用,例如在 JDBC 连接数据库时,通常会采用单例模式来管理数据库连接。 单例模式有两种常见的实现方式:饿汉模式和懒汉模式。 1. **饿汉模式**: - 饿汉模式的...
1. **数据库连接**:使用`java.sql.DriverManager`类加载数据库驱动并建立连接。例如,`Class.forName("com.mysql.jdbc.Driver")`加载MySQL的JDBC驱动,然后`Connection conn = DriverManager.getConnection(url, ...
在Java中,如果需要管理与MySQL数据库的连接,可以使用单例模式来创建一个`DBManager`类,该类负责初始化和管理数据库连接。以下是一个简单的示例: ```java public class DBManager { private String user; ...
**步骤一**:创建`ConnManagerPool`类,定义连接参数和连接栈,以及一个静态的单例实例。 ```java public class ConnManagerPool { private static ConnManagerPool instance; private Stack<Connection> ...
Java数据库连接(JDBC)是Java编程语言中用于与各种关系型数据库进行交互的一组接口和类。在Java中,我们可以使用JDBC API来执行SQL语句,进行数据的增删改查(CRUD:Create、Read、Update、Delete)操作。这个"java...
`DriverManager`类没有公开的构造函数,它是作为一个单例存在,所有的方法都是静态的。 14.4.2 `DriverManager`类的主要方法 - `getConnection(String url)`:根据URL创建数据库连接。 - `getConnection(String url...
在处理数据库连接时,为了节省资源和提高效率,通常我们会使用单例模式来管理数据库连接池。单例模式保证一个类只有一个实例,并提供一个全局访问点。例如,Apache的DBCP或C3P0库都使用了单例模式来管理连接池。 ##...
为了更好地管理和封装数据库连接操作,可以使用单例模式设计一个工具类,如下所示: ```java public class JdbcUtilsSing { private String url = "jdbc:mysql://localhost:3306/jdbc"; private String user = ...
连接池负责管理连接的创建、分配和回收等操作,而具体的数据库操作(如查询、更新等)则通过 JDBC API 完成。 ### DBConnectionManager 类的设计与实现 DBConnectionManager 类是数据库连接池的核心组件之一,其...