首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > 其他数据库 >

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

2013-07-09 
JDBC备忘录3_常用的JDBC单例类?要点:1、类设计2、单例模式3、resultSet,Statement,Connection的关闭顺序以及

JDBC备忘录3_常用的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-checkpublic 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 blocke.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("程序结束");}}}}}

?

热点排行