`

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连接数据库getConnection 增、删、改、查

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

    DBSingle.java

    本示例是java语言使用JDBC方式单例模式连接数据库的代码,有误之处,请多指教。

    北京百度java面试题大全

    JDBC和数据库:涉及JDBC的使用、连接数据库、执行SQL语句、事务管理等数据库相关的知识。 Java虚拟机(JVM):包括垃圾回收机制、内存管理、类加载机制等与JVM相关的知识。 设计模式:涉及常见的设计模式,如单例...

    使用DWR框架处理下拉列表的级联

    这个demo演示了使用DWR...dao层采用了jsp中经典的JDBC封装、单例、属性文件等技术。数据文件可以按照我的entity层里面写的代码创建就可以了。这个文件直接导入你的工程在属性文件中配置好你的数据库连接就可以使用。

    JavaEE+JDBC+Servlet+EL表达式的员工信息管理系统源码+数据库+项目说明(高分课设).zip

    1. dao层和service层部分采用单例模式(懒汉式-不支持多线程) 2. service层部门采用工厂模式 ## 源码 [v1.0 - servlet-v1.0](https://gitee.com/LovelyHzz/java-ee-jdbc-servlet/tree/master/servlet-v1.0) [v...

    网上商城下载、

    采用连接池技术连接数据库并使用JDBC技术提供商业逻辑层对数据库调用,其次在商业逻辑层是用JavaBean技术,提供给表现层或客户端统一的商业逻辑调用接口,其次还在程序中使用了抽象工厂,单例等设计模式。在表现层...

    2023Java高频面试题

    JDBC:Java与数据库的交互,连接池的使用等。 Spring框架:Spring框架的基础概念、IOC容器、AOP等。 Hibernate框架:Hibernate框架的基础概念、ORM映射、HQL查询等。 Servlet与JSP:Web开发的基础知识、Servlet和JSP...

    java面试题库2021.pdf

    目录 一、 JavaSE 部分 1、 Java 基础 ①Java 基础部分(基本语法, Java 特性等) ②关键字 ③面向对象 ...①单例模式 3、 行为型模式 ①策略模式 ②观察者模式 4、 所有模式汇总 十、 场景题 十一、 UML

    二十三种设计模式【PDF版】

    设计模式之 Singleton(单态/单件) 阎宏博士讲解:单例(Singleton)模式 保证一个类只有一个实例,并提供一个访问它的全局访问点 设计模式之 Factory(工厂方法和抽象工厂) 使用工厂模式就象使用 new 一样频繁. ...

    Java开发实战1200例(第1卷).(清华出版.李钟尉.陈丹丹).part3

    实例088 单例模式的应用 109 实例089 祖先的止痒药方 110 实例090 统计图书的销售量 111 实例091 汉诺塔问题求解 112 实例092 不能重写的方法 113 5.3 包装类的使用 114 实例093 将字符串转换成整数 114 实例094 ...

    JAVA 范例大全 光盘 资源

    实例31 单例模式(Singleton) 75 实例33 开车(简单工厂模式) 77 实例33 旅游(工厂方法模式) 79 实例34 花园布局(抽象工厂模式) 80 实例35 几何图形(适配器模式) 82 第6章 字符串 85 实例36 获取字符...

    java面试题

    答:JDBC数据库连接,是一种用于执行SQL语句的Java API,可以为多种关系型数据库提供统一访问。 什么情况下不建议使用Hibernate? 答:当数据量大,并且表关系复杂的时候不建议使用。 sleep()和wait()有什么区别? ...

    Java核心技术II(第8版)

    4.3.5 连接到数据库 4.4 执行SQL语句 4.4.1 管理连接、语句和结果集 4.4.2 分析SQL异常 4.4.3 组装数据库 4.5 执行查询操作 4.5.1 预备语句 4.5.2 读取和写出LOB 4.5.3 SQL转义 4.5.4 多结果集 4.5.5 获取自动生成键...

    Java收银机源码-Shevchenko:舍甫琴科

    GoF(工厂方法、命令、单例、构建器、策略)和模型-视图-控制器模式。 使用 servlet 和 JSP,实现在制定特定任务时提出的功能。 在开发 JSP 时使用您自己的标签。 在开发业务逻辑时,使用会话和过滤器。 应用程序...

    java面试题,180多页,绝对良心制作,欢迎点评,涵盖各种知识点,排版优美,阅读舒心

    【WEB】阐述JDBC操作数据库的步骤 36 【WEB】JSP内置对象 37 【WEB】JSP中的四种作用域 38 【WEB】转发(forward)和重定向(redirect)的区别 38 forward(转发): 38 redirect(重定向): 39 区别: 39 【WEB】...

    Java学习笔记-个人整理的

    {13.3}连接Oracle数据库及操作}{192}{section.13.3} {13.4}批处理模式}{195}{section.13.4} {13.5}分页查询}{196}{section.13.5} {13.5.1}MySQL}{198}{subsection.13.5.1} {13.6}连接池}{199}{section.13.6} {...

Global site tag (gtag.js) - Google Analytics