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 }
分享到:
相关推荐
* 单例模式 * @return */ public static ConfigSQLHelper getInstance(){ return helper; } /** * 得到连接 * @return */ public static Connection getConnection() { String driver = ConfigSQLHelper....
本示例是java语言使用JDBC方式单例模式连接数据库的代码,有误之处,请多指教。
JDBC和数据库:涉及JDBC的使用、连接数据库、执行SQL语句、事务管理等数据库相关的知识。 Java虚拟机(JVM):包括垃圾回收机制、内存管理、类加载机制等与JVM相关的知识。 设计模式:涉及常见的设计模式,如单例...
这个demo演示了使用DWR...dao层采用了jsp中经典的JDBC封装、单例、属性文件等技术。数据文件可以按照我的entity层里面写的代码创建就可以了。这个文件直接导入你的工程在属性文件中配置好你的数据库连接就可以使用。
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技术,提供给表现层或客户端统一的商业逻辑调用接口,其次还在程序中使用了抽象工厂,单例等设计模式。在表现层...
JDBC:Java与数据库的交互,连接池的使用等。 Spring框架:Spring框架的基础概念、IOC容器、AOP等。 Hibernate框架:Hibernate框架的基础概念、ORM映射、HQL查询等。 Servlet与JSP:Web开发的基础知识、Servlet和JSP...
目录 一、 JavaSE 部分 1、 Java 基础 ①Java 基础部分(基本语法, Java 特性等) ②关键字 ③面向对象 ...①单例模式 3、 行为型模式 ①策略模式 ②观察者模式 4、 所有模式汇总 十、 场景题 十一、 UML
设计模式之 Singleton(单态/单件) 阎宏博士讲解:单例(Singleton)模式 保证一个类只有一个实例,并提供一个访问它的全局访问点 设计模式之 Factory(工厂方法和抽象工厂) 使用工厂模式就象使用 new 一样频繁. ...
实例088 单例模式的应用 109 实例089 祖先的止痒药方 110 实例090 统计图书的销售量 111 实例091 汉诺塔问题求解 112 实例092 不能重写的方法 113 5.3 包装类的使用 114 实例093 将字符串转换成整数 114 实例094 ...
实例31 单例模式(Singleton) 75 实例33 开车(简单工厂模式) 77 实例33 旅游(工厂方法模式) 79 实例34 花园布局(抽象工厂模式) 80 实例35 几何图形(适配器模式) 82 第6章 字符串 85 实例36 获取字符...
答:JDBC数据库连接,是一种用于执行SQL语句的Java API,可以为多种关系型数据库提供统一访问。 什么情况下不建议使用Hibernate? 答:当数据量大,并且表关系复杂的时候不建议使用。 sleep()和wait()有什么区别? ...
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 获取自动生成键...
GoF(工厂方法、命令、单例、构建器、策略)和模型-视图-控制器模式。 使用 servlet 和 JSP,实现在制定特定任务时提出的功能。 在开发 JSP 时使用您自己的标签。 在开发业务逻辑时,使用会话和过滤器。 应用程序...
【WEB】阐述JDBC操作数据库的步骤 36 【WEB】JSP内置对象 37 【WEB】JSP中的四种作用域 38 【WEB】转发(forward)和重定向(redirect)的区别 38 forward(转发): 38 redirect(重定向): 39 区别: 39 【WEB】...
{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} {...