`

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类,我们...

    java_jdbc数据库连接池总结

    解决多数据库服务器和多用户问题可以设计一个符合单例模式的连接池管理类,在连接池管理类的唯一实例被创建时读取一个资源文件,其中包含了不同的数据库连接信息。 Java JDBC 数据库连接池的优点包括: 1. 提高...

    基于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