看到有些书上数据库连接提供两个工厂类,一个连接工厂类一个关闭工厂类,并且关闭工厂类写了多种重载形式,感觉没有必要,这样写比较简洁一些。
1 /** 2 * 抽象出的连接工厂类,提供连接数据库和关闭连接的相关方法 3 * @author lkx 4 * date:2013年10月21日 12:17:29 5 */ 6 package com.snow.factory; 7 import java.sql.Connection; 8 import java.sql.DriverManager; 9 import java.sql.ResultSet; 10 import java.sql.Statement; 11 public class ConnectionFactory 12 { 13 //数据库连接的相关参数 14 private static final String URL="jdbc:mysql://127.0.0.1:3306/<dbname>"; 15 private static final String User="<username>"; 16 private static final String Password="<password>"; 17 private static final String Driver="com.mysql.jdbc.Driver"; 18 19 /** 20 * 获取数据库连接 21 * @return 成功则返回java.sql.Connection 22 * 失败则返回null 23 */ 24 public static Connection getConnection() 25 { 26 Connection con=null; 27 try 28 { 29 Class.forName(Driver);//加载数据库驱动 30 con = DriverManager.getConnection(URL, User, Password);//创建连接 31 } 32 catch (Exception e) { 33 System.out.print("获取连接出错"); 34 e.printStackTrace(); 35 } 36 return con; 37 } 38 39 /** 40 *关闭数据库连接 41 * @param Connection con,Statement stm,ResultSet rs 42 */ 43 public static void closeConnection(Connection con,Statement stm,ResultSet rs)//不提供重载形式,如果仅需关闭其中几个,则其他参数传null即可 44 { 45 try 46 { 47 if(rs!=null) 48 rs.close(); //关闭结果集 49 if(stm!=null) 50 stm.close();//关闭语句块 51 if(con!=null) 52 con.close();//关闭连接 53 } 54 catch (Exception e) 55 { 56 System.out.print("关闭资源出错"); 57 e.printStackTrace(); 58 } 59 } 60 }