`
chxiaowu
  • 浏览: 240265 次
  • 性别: Icon_minigender_1
  • 来自: 武汉
社区版块
存档分类
最新评论

JDBC 建立连接公共操作类(静态方式与单例方式)

 
阅读更多

静态方式

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 单例 工具类"主要涉及Oracle数据库的JDBC连接管理,通过单例模式实现连接的高效复用,以及在Java环境中与Oracle数据库交互的基础知识。理解这些概念对于任何使用Java进行数据库开发的程序员...

    jdbc连接工具类 单例连接模式,进度1

    具体实现方式可能在名为“jdbc工具类连接单例模式0914”的文件中详细描述,包括如何初始化连接池,如何处理并发场景下的连接获取与释放,以及可能的异常处理机制。 总之,通过结合JDBC连接工具类和单例设计模式,这...

    JDBC的连接实例 单子模式的写法

    ### JDBC的连接实例与单例模式的写法详解 在Java开发中,JDBC(Java Database Connectivity)是一种用于执行SQL语句的Java API,可以为多种关系数据库提供统一访问,它由一组用Java语言编写的类和接口组成。本文将...

    JDBC笔记.docx

    本资源摘要信息主要介绍了 Java 数据库连接(JDBC)的相关知识,包括单例模式、JDBC 概述、JDBC 实现原理、JDBC 开发主要类和 JDBC 开发步骤等内容。 单例模式 单例模式是一种常用的软件设计模式,通过单例模式...

    day2_jdbc.zip_jdbc ut_jdbc util_jdbcUtil_jdbc封装

    `JdbcUtil`类是开发者为了简化JDBC操作而自定义的一个工具类,它封装了JDBC的一些常用功能,以便更方便、高效地进行数据库交互。下面我们将详细探讨JDBC的基础知识,以及`JdbcUtil`类的设计思想和实现方法。 首先,...

    使用JDBC连接处理MySQL表源代码

    - **DBManager.java**:可能是数据库连接管理类,用于创建和管理数据库连接,比如实现单例模式以避免资源浪费。 - **BookDAO.java**:DAO接口,定义了操作数据库的方法签名。 - **BookDAOFactory.java**:工厂模式的...

    单例模式下的登录界面

    这主要涉及两个核心方面:一是使用单例模式管理数据库连接(通过`DBUtil`类实现),二是设计登录界面并处理登录逻辑(通过`LoginForm`类实现)。 ### 单例模式下数据库连接管理 在Java中,单例模式是一种常用的...

    单例模式与工厂模式.docx

    工厂模式的应用场景广泛,例如在JDBC连接数据库时,通过DriverManager.getConnection()方法创建数据库连接,这就是一种简单的工厂模式。同时,工厂模式可以用来替代单例模式,例如在需要延迟初始化或对象池(如缓存...

    oracle proxool jar jdbc jar包 proxool源码包 Java oracle proxool 实例

    在Oracle环境中,我们需要Oracle的JDBC驱动,如ojdbc.jar,来建立与Oracle数据库的连接。 "proxool源码包"则提供了Proxool的源代码,这对于开发者来说是极其宝贵的资源。通过阅读源码,开发者可以深入理解Proxool的...

    单实例模式数据库连接池

    - 作用:复用数据库连接,减少频繁建立和关闭连接所带来的开销,提高响应速度。 - 关键组件:连接池管理器、连接工厂、连接对象。 3. **实现要点**: - **初始化**:在类加载或第一次请求时初始化单例实例,并...

    JDBC学习笔记

    - 自定义异常类处理JDBC操作中可能出现的问题。 - 通过异常抛出机制传递错误信息。 #### 十四、JDBC事务处理 - **概念**:事务是一系列操作的集合,要么全部成功,要么全部失败。 - **JDBC事务管理**: - 使用`...

    java 单例模式(饿汉模式与懒汉模式).docx

    这种模式在资源管理、缓存、日志记录等场景中广泛应用,例如在 JDBC 连接数据库时,通常会采用单例模式来管理数据库连接。 单例模式有两种常见的实现方式:饿汉模式和懒汉模式。 1. **饿汉模式**: - 饿汉模式的...

    Jdbc_book.rar

    1. **数据库连接**:使用`java.sql.DriverManager`类加载数据库驱动并建立连接。例如,`Class.forName("com.mysql.jdbc.Driver")`加载MySQL的JDBC驱动,然后`Connection conn = DriverManager.getConnection(url, ...

    java模式之单例模式.doc

    在Java中,如果需要管理与MySQL数据库的连接,可以使用单例模式来创建一个`DBManager`类,该类负责初始化和管理数据库连接。以下是一个简单的示例: ```java public class DBManager { private String user; ...

    Java连接池的实现

    **步骤一**:创建`ConnManagerPool`类,定义连接参数和连接栈,以及一个静态的单例实例。 ```java public class ConnManagerPool { private static ConnManagerPool instance; private Stack<Connection> ...

    java数据库连接和操作包

    Java数据库连接(JDBC)是Java编程语言中用于与各种关系型数据库进行交互的一组接口和类。在Java中,我们可以使用JDBC API来执行SQL语句,进行数据的增删改查(CRUD:Create、Read、Update、Delete)操作。这个"java...

    JDBC.JDBC.JDBC.

    `DriverManager`类没有公开的构造函数,它是作为一个单例存在,所有的方法都是静态的。 14.4.2 `DriverManager`类的主要方法 - `getConnection(String url)`:根据URL创建数据库连接。 - `getConnection(String url...

    超经典的jdbc学习笔记

    在处理数据库连接时,为了节省资源和提高效率,通常我们会使用单例模式来管理数据库连接池。单例模式保证一个类只有一个实例,并提供一个全局访问点。例如,Apache的DBCP或C3P0库都使用了单例模式来管理连接池。 ##...

    jdbc学习笔记

    为了更好地管理和封装数据库连接操作,可以使用单例模式设计一个工具类,如下所示: ```java public class JdbcUtilsSing { private String url = "jdbc:mysql://localhost:3306/jdbc"; private String user = ...

    数据库连接池

    连接池负责管理连接的创建、分配和回收等操作,而具体的数据库操作(如查询、更新等)则通过 JDBC API 完成。 ### DBConnectionManager 类的设计与实现 DBConnectionManager 类是数据库连接池的核心组件之一,其...

Global site tag (gtag.js) - Google Analytics