`

jdbc连接数据库(单例模式)

阅读更多
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连接数据库步骤及代码

    ### JDBC连接数据库步骤详解 #### 一、简介 在Java开发中,经常需要与数据库进行交互,例如查询数据、更新数据等操作。为了方便开发者进行这些操作,Sun公司推出了一套标准的Java访问数据库的API——Java Database...

    Oracle jdbc 单例 工具类

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

    java单例模式连接数据库源码

    以下是对Java单例模式连接数据库源码的详细解释。 首先,我们需要了解Java中的单例模式实现方式。常见的有懒汉式、饿汉式、双重检查锁定(DCL)以及静态内部类四种。其中,DCL和静态内部类是最推荐的,因为它们既...

    jdbc连接数据库getConnection 增、删、改、查

    * 单例模式 * @return */ public static ConfigSQLHelper getInstance(){ return helper; } /** * 得到连接 * @return */ public static Connection getConnection() { String driver = ConfigSQLHelper....

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

    在本项目中,“jdbc连接工具类 单例连接模式,进度1”指的是创建了一个使用单例设计模式的JDBC连接工具类,以优化数据库连接的管理和复用,提高程序性能。下面我们将深入探讨这两个关键概念。 首先,让我们了解一下...

    配置文件+类加载器(单例模式)连接数据库

    这里我们关注的是如何使用配置文件、类加载器以及单例模式来高效、稳定地管理数据库连接。Oracle数据库是一种广泛使用的商业关系型数据库系统,尤其适用于大型企业级应用。下面将详细阐述这些知识点。 首先,**配置...

    单例模式----数据库连接池管理类的应用

    以HikariCP为例,它被誉为“最快的JDBC连接池”。HikariCP使用了单例模式,提供了线程安全的初始化和访问方式。通过配置文件,我们可以设置连接池的最大连接数、最小空闲连接数、连接超时时间等参数。同时,HikariCP...

    Java jdbc数据库连接池总结

    我们采用的策略是:设计一个符合单例模式的连接池管理类,在连接池管理类的唯一实例被创建时读取一个资源文件,其中资源文件中存放着多个数据库的 url 地址()、用户名()、密码()等信息。 3. 连接池的配置:...

    Java自定义连接池,单例模式

    这些方法的实现会依赖于数据库连接池的API,如JDBC的DataSource接口,以及单例模式下的全局连接池实例。 总结起来,Java自定义连接池和单例模式的结合,可以创建一个高效、稳定的数据库访问层。通过BaseDao类,我们...

    基于JDBC的数据库连接池技术研究与应用

    对于多数据库服务器的需求,通常采用单例模式的连接池管理类,根据配置文件动态创建对应不同数据库的连接池实例。 在配置和维护连接池时,需要考虑的最大连接数、空闲连接超时、连接验证策略等因素。例如,最大连接...

    JDBC连接Oracle数据库代码经验

    总的来说,这段代码展示了如何使用JDBC连接Oracle数据库,并通过连接池进行管理。使用这种方式可以显著提高Web应用程序的性能,减少由于频繁建立和关闭数据库连接带来的开销。在实际项目中,还需要考虑异常处理、...

    最新版加注释通用JDBC数据库连接池

    然而,频繁地创建和关闭JDBC连接会带来额外的开销,因此引入了数据库连接池。 **单例模式:** 在本资源中,数据库连接池实现采用了单例模式。单例模式确保一个类只有一个实例,并提供一个全局访问点。在数据库连接...

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

    下面,我们将基于给定的部分代码示例,详细解析JDBC连接的单例模式实现: ```java import java.sql.*; public class DataBaseManager { private static DataBaseManager instance = null; private Connection ...

    单例模式下的登录界面

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

    JDBC连接oracle数据库.pdf

    以下是一个简单的JDBC连接Oracle数据库的代码示例,它包含了如何加载驱动和获取数据库连接: ```java public Connection newConnection(String user, String password) { Connection con = null; try { Class....

    单例模式与工厂模式.docx

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

Global site tag (gtag.js) - Google Analytics