01 package com.sli;
02
03 import java.sql.Connection;
04 import java.sql.DriverManager;
05 import java.sql.ResultSet;
06 import java.sql.SQLException;
07 import java.sql.Statement;
08
09 /**
10 *
11 * @author 罗盛力 JDBC辅助类 用于构建数据库连接(采用单例模式)
12 */
13 public final class JDBCUtilSingle {
14 // 该url为缺省方式(省略主机跟端口)
15 // 完整为:jdbc:mysql//localhost:3306/test
16 static String url = "jdbc:mysql:///test";
17 static String name = "root";
18 static String password = "sli";
19 static Connection conn = null;
20 private static JDBCUtilSingle jdbcUtilSingle = null;
21
22 public static JDBCUtilSingle getInitJDBCUtil() {
23 if (jdbcUtilSingle == null) {
24 // 给类加锁 防止线程并发
25 synchronized (JDBCUtilSingle.class) {
26 if (jdbcUtilSingle == null) {
27 jdbcUtilSingle = new JDBCUtilSingle();
28 }
29 }
30 }
31 return jdbcUtilSingle;
32 }
33
34 private JDBCUtilSingle() {
35 }
36
37 // 通过静态代码块注册数据库驱动,保证注册只执行一次
38 static {
39 try {
40 // 注册驱动有如下方式:
41 // 1.通过驱动管理器注册驱动,但会注册两次,并且会对类产生依赖。如果该类不存在那就报错了。
42 // DriverManager.registerDriver(new com.mysql.jdbc.Driver());
43 // 2.与3类似
44 // System.setProperty("jdbc.drivers","com.mysql.jdbc.Driver");
45 Class.forName("com.mysql.jdbc.Driver");// 推荐使用方式
46 } catch (ClassNotFoundException e) {
47 e.printStackTrace();
48 }
49 }
50
51 // 获得连接
52 public Connection getConnection() {
53 try {
54 conn = DriverManager.getConnection(url,name,password);
55 } catch (SQLException e) {
56 e.printStackTrace();
57 }
58 return conn;
59
60 }
61
62 // 关闭连接
63 public void closeConnection(ResultSet rs, Statement statement, Connection con) {
64 try {
65 if (rs != null) {
66 rs.close();
67 }
68 } catch (SQLException e) {
69 e.printStackTrace();
70 } finally {
71 try {
72 if (statement != null) {
73 statement.close();
74 }
75 } catch (Exception e) {
76 e.printStackTrace();
77 } finally {
78 try {
79 if (con != null) {
80 con.close();
81 }
82 } catch (SQLException e) {
83 e.printStackTrace();
84 }
85 }
86 }
87 }
88
89 }
分享到:
相关推荐
### JDBC连接数据库步骤详解 #### 一、简介 在Java开发中,经常需要与数据库进行交互,例如查询数据、更新数据等操作。为了方便开发者进行这些操作,Sun公司推出了一套标准的Java访问数据库的API——Java Database...
综上所述,"Oracle jdbc 单例 工具类"主要涉及Oracle数据库的JDBC连接管理,通过单例模式实现连接的高效复用,以及在Java环境中与Oracle数据库交互的基础知识。理解这些概念对于任何使用Java进行数据库开发的程序员...
以下是对Java单例模式连接数据库源码的详细解释。 首先,我们需要了解Java中的单例模式实现方式。常见的有懒汉式、饿汉式、双重检查锁定(DCL)以及静态内部类四种。其中,DCL和静态内部类是最推荐的,因为它们既...
* 单例模式 * @return */ public static ConfigSQLHelper getInstance(){ return helper; } /** * 得到连接 * @return */ public static Connection getConnection() { String driver = ConfigSQLHelper....
在本项目中,“jdbc连接工具类 单例连接模式,进度1”指的是创建了一个使用单例设计模式的JDBC连接工具类,以优化数据库连接的管理和复用,提高程序性能。下面我们将深入探讨这两个关键概念。 首先,让我们了解一下...
这里我们关注的是如何使用配置文件、类加载器以及单例模式来高效、稳定地管理数据库连接。Oracle数据库是一种广泛使用的商业关系型数据库系统,尤其适用于大型企业级应用。下面将详细阐述这些知识点。 首先,**配置...
以HikariCP为例,它被誉为“最快的JDBC连接池”。HikariCP使用了单例模式,提供了线程安全的初始化和访问方式。通过配置文件,我们可以设置连接池的最大连接数、最小空闲连接数、连接超时时间等参数。同时,HikariCP...
我们采用的策略是:设计一个符合单例模式的连接池管理类,在连接池管理类的唯一实例被创建时读取一个资源文件,其中资源文件中存放着多个数据库的 url 地址()、用户名()、密码()等信息。 3. 连接池的配置:...
这些方法的实现会依赖于数据库连接池的API,如JDBC的DataSource接口,以及单例模式下的全局连接池实例。 总结起来,Java自定义连接池和单例模式的结合,可以创建一个高效、稳定的数据库访问层。通过BaseDao类,我们...
解决多数据库服务器和多用户问题可以设计一个符合单例模式的连接池管理类,在连接池管理类的唯一实例被创建时读取一个资源文件,其中包含了不同的数据库连接信息。 Java JDBC 数据库连接池的优点包括: 1. 提高...
对于多数据库服务器的需求,通常采用单例模式的连接池管理类,根据配置文件动态创建对应不同数据库的连接池实例。 在配置和维护连接池时,需要考虑的最大连接数、空闲连接超时、连接验证策略等因素。例如,最大连接...
总的来说,这段代码展示了如何使用JDBC连接Oracle数据库,并通过连接池进行管理。使用这种方式可以显著提高Web应用程序的性能,减少由于频繁建立和关闭数据库连接带来的开销。在实际项目中,还需要考虑异常处理、...
然而,频繁地创建和关闭JDBC连接会带来额外的开销,因此引入了数据库连接池。 **单例模式:** 在本资源中,数据库连接池实现采用了单例模式。单例模式确保一个类只有一个实例,并提供一个全局访问点。在数据库连接...
下面,我们将基于给定的部分代码示例,详细解析JDBC连接的单例模式实现: ```java import java.sql.*; public class DataBaseManager { private static DataBaseManager instance = null; private Connection ...
这主要涉及两个核心方面:一是使用单例模式管理数据库连接(通过`DBUtil`类实现),二是设计登录界面并处理登录逻辑(通过`LoginForm`类实现)。 ### 单例模式下数据库连接管理 在Java中,单例模式是一种常用的...
以下是一个简单的JDBC连接Oracle数据库的代码示例,它包含了如何加载驱动和获取数据库连接: ```java public Connection newConnection(String user, String password) { Connection con = null; try { Class....
工厂模式的应用场景广泛,例如在JDBC连接数据库时,通过DriverManager.getConnection()方法创建数据库连接,这就是一种简单的工厂模式。同时,工厂模式可以用来替代单例模式,例如在需要延迟初始化或对象池(如缓存...