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类,我们...
对于多数据库服务器的需求,通常采用单例模式的连接池管理类,根据配置文件动态创建对应不同数据库的连接池实例。 在配置和维护连接池时,需要考虑的最大连接数、空闲连接超时、连接验证策略等因素。例如,最大连接...
总的来说,这段代码展示了如何使用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()方法创建数据库连接,这就是一种简单的工厂模式。同时,工厂模式可以用来替代单例模式,例如在需要延迟初始化或对象池(如缓存...