`
paladin1988
  • 浏览: 326301 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

JDBC备忘录3_常用的JDBC单例类

    博客分类:
  • JDBC
 
阅读更多

 

要点:

1、类设计

2、单例模式

3、resultSet,Statement,Connection的关闭顺序以及异常捕获

 

1、工具类,不让其他类继承,所以是final;url,password,driver,class等常量信息

2、单例模式,饿汉模式和懒汉模式的区别,双重加锁

(1)单例模式三要素:静态私有的成员变量,私有构造方法,防止外部实例化,公共的获取方法

(2)饿汉模式,饥所以及时加载;懒汉模式,懒所以延迟加载;

3、打开顺序:Connection --> Statement(PreparedStatement) --> Result

关闭顺序: Result --> Statement --> Connection

 

 

package com.zhaoyp.jdbc.util;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;

public final class JdbcUtils {
	
	private static final String URL = "jdbc:mysql://localhost:3306/jdbc";
	private static final String USERNAME = "root";
	private static final String PASSWORD = "123";
	private static final String DRIVER = "com.mysql.jdbc.Driver";
	
	//延迟加载,需要new的时候才去new
	//懒汉模式,懒所以延迟加载
	//饿汉模式,饿所以及时加载
//	private static JdbcUtils instance = new JdbcUtils();
	private static JdbcUtils instance = null;
	
	private JdbcUtils() {
	}
	
//	public static synchronized JdbcUtils getInstance() {
//		if(instance == null) {
//			instance = new JdbcUtils();
//		}
//		return instance;
//	}
	
	
	//double-check
	public static JdbcUtils getInstance() {
		if(instance == null) {
			//class级别锁
			synchronized (JdbcUtils.class) {
				if(instance == null) {
					instance = new JdbcUtils();
				}
			}
		}
		return instance;
	}
	
	static {
		try {
			Class.forName(DRIVER);
		} catch (ClassNotFoundException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}	
	}
	
	public static Connection getConnection() throws SQLException {
		return DriverManager.getConnection(URL, USERNAME, PASSWORD);
	}
	
	public static void free(ResultSet rs, Statement st, Connection conn) {
		try {
			if(rs!=null && !rs.isClosed())
				rs.close();
		} catch (Exception e) {
			System.out.println("异常。。");
		} finally {
			try {
				if(st != null && !st.isClosed())
					st.close();
			} catch (Exception e) {
				System.out.println("st 异常");
			} finally {
				try {
					if(conn != null && !conn.isClosed()) 
						conn.close();
				} catch (Exception e) {
					System.out.println("conn 异常");
				} finally {
					System.out.println("程序结束");
				}
				
			}
		}
	}
}

 

分享到:
评论

相关推荐

    java通讯及备忘功能源码

    可能包括`Contact`类(代表联系人)和`Memo`类(代表备忘录),每个类都有相应的属性(如姓名、电话、电子邮件等)和方法(如添加、删除、修改记录)。 2. **集合框架**:为了存储和管理大量的联系人和备忘录,Java...

    java设计模式大全

    行为型模式如策略模式、模板方法模式、观察者模式、迭代器模式、访问者模式、命令模式、责任链模式、备忘录模式和状态模式,它们关注对象之间的交互和职责分配。 例如,单例模式确保一个类只有一个实例,并提供全局...

    JAVA学习全套大全

    3. 行为型模式:观察者、模板方法、策略、职责链、命令、解释器、迭代器、备忘录、状态、访问者等,优化程序行为。 以上只是Java学习中的部分核心知识点,PPT资料将可能深入到这些主题,并涵盖更多实际案例和实战...

    509道Java面试题汇总与解析.zip

    3. 行为型模式:观察者、模板方法、策略、责任链、命令、迭代器、访问者、备忘录、解释器等。 此外,现代Java开发中框架的使用也是重要考核点: 1. Spring框架:依赖注入(DI)、AOP(面向切面编程)、Spring Boot...

    java面试题.rar

    - 行为型模式:观察者、模板方法、策略、职责链、访问者、状态、命令、迭代器、备忘录等。 以上只是Java面试题中可能涉及的一部分知识点,实际面试可能还会包含JDBC、Spring框架、MyBatis、微服务、分布式系统等...

    java与模式,设计模式的应用

    3. 行为型模式(Behavioral Patterns):包括责任链模式(Chain of Responsibility)、命令模式(Command)、解释器模式(Interpreter)、迭代器模式(Iterator)、中介者模式(Mediator)、备忘录模式(Memento)、...

    疯狂Java面试题

    - 行为型模式:策略、模板方法、观察者、迭代器、责任链、命令、备忘录、解释器。 以上只是《疯狂Java面试题》中可能涵盖的部分关键知识点,实际内容会更详尽,包括对每个知识点的深度剖析和面试常见问题。通过...

    历年来的java面试题

    3. 行为型模式:模板方法、策略、观察者、职责链、命令、解释器、迭代器、备忘录、状态、访问者。 十、数据库操作 1. JDBC:理解数据库连接、执行SQL、结果集处理等步骤。 2. ORM框架:如Hibernate和MyBatis,简化...

    Java程序员面试宝典

    3. 行为型模式:策略、模板方法、观察者、职责链、命令、迭代器、访问者、备忘录、状态、解释器模式。 十、框架与工具 1. Spring框架:讲解依赖注入、AOP、Spring Boot和Spring Cloud等相关知识。 2. MyBatis:理解...

    JAVA面试题最全集

    3. 行为型模式:策略、模板方法、观察者、迭代器、责任链、命令、备忘录、解释器、访问者模式。 以上内容仅是“JAVA面试题最全集”的一部分,实际资料中可能包含更多高级主题,如Spring框架、JDBC、网络编程、多...

    java开发面试合集-自己整理

    - 行为型模式:如策略、模板方法、观察者、迭代器、责任链、命令、备忘录、解释器模式。 7. **其他** - 架构设计:MVC、微服务、SOA等架构模式的理解和应用。 - 性能优化:包括代码优化、数据库查询优化、服务器...

    java面试复习资料整理,涵盖常见的面试题相关的知识

    - 行为型模式:观察者、策略、模板方法、迭代器、责任链、命令、备忘录、解释器等。 9. **Java 8及更高版本新特性** - Lambda表达式:函数式编程的引入,简化匿名内部类。 - Stream API:处理集合数据的新方式,...

    java设计模式例子讲解.doc

    Java中的其他设计模式如单例模式、抽象工厂模式、建造者模式、原型模式、适配器模式、装饰器模式、代理模式、外观模式、桥接模式、组合模式、享元模式、策略模式、模板方法模式、观察者模式、迭代子模式、责任链模式...

    JavaAndDesignPattern

    - 行为型模式:策略、模板方法、观察者、迭代器、责任链、命令、备忘录、解释器等,关注对象间交互和行为。 3. **常用设计模式详解** - 单例模式:确保一个类只有一个实例,常用于日志服务、线程池等。 - 工厂...

    java面试大全

    - 行为型模式:责任链、命令、解释器、迭代器、备忘录、观察者、状态、策略、模板方法、访问者。 以上只是部分Java面试中常见的知识点,实际面试可能会涉及更深入的技术细节,如并发编程的高级特性、JDBC数据库...

    Java 最常见 200+ 面试题全解析:面试必备

    - 行为型模式:观察者、模板方法、策略、职责链、迭代器、命令、备忘录、解释器。 8. **数据库交互**: - SQL语言:增删改查、连接查询、子查询、事务处理。 - JDBC:连接数据库、执行SQL、结果集处理、批处理。...

    Design Patterns Workbook 英文版 (pdf)

    - **备忘录模式**:在Java中,通过备忘录模式支持撤销操作,提供了历史状态的回溯能力。 - **原型模式**:利用克隆技术快速创建对象副本,提高了创建新对象的效率。 - **命令模式**:在Java中,命令模式常用于实现...

    23种模式详解-java附详细文档

    19. **备忘录模式**:在不破坏封装性的前提下,捕获一个对象的状态,以便之后恢复。Java中没有内置的备忘录实现,但可以通过序列化或自定义实现。 20. **观察者模式**:当对象状态改变时,通知所有依赖它的对象。...

    JAVA基础面试大全.doc corejavanetbook.doc jsp技术大全.pdf

    这些模式包括单例模式、工厂模式、抽象工厂模式、建造者模式、原型模式、适配器模式、装饰模式、代理模式、桥接模式、组合模式、外观模式、享元模式、职责链模式、命令模式、解释器模式、迭代器模式、访问者模式、...

Global site tag (gtag.js) - Google Analytics