JDBC之创建工具类

  在使用的时候,时常要创建连接,关闭链接什么的,现将其作成一个工具类.减少代码冗余,提高开发速率~ !

 

1 package com.loveis.jdbc;
2
3 import java.sql.Connection;
4 import java.sql.DriverManager;
5 import java.sql.ResultSet;
6 import java.sql.SQLException;
7 import java.sql.Statement;
8
9 public class JdbcUtils {
10
11 private static String driverName = "com.mysql.jdbc.Driver";
12
13 private static String url = "jdbc:mysql://localhost/jdbc";
14
15 private static String username = "root";
16
17 private static String password = "";
18
19 private JdbcUtils() { }
20
21 static{
22 try {
23 // 注册驱动,放在静态区内,确保被使用时注册
24 Class.forName(driverName);
25 // DriverManager.registerDriver(new com.mysql.jdbc.Driver());
26 }catch (Exception e) {
27 e.printStackTrace();
28 }
29 }
30
31 public static void setInit(String url,String username,String password) {
32 JdbcUtils.url = url;
33 JdbcUtils.username = username;
34 JdbcUtils.password = password;
35 }
36
37 public static void setInit(String driverName,String url,String username,String password) {
38 JdbcUtils.driverName = driverName;
39 setInit(url,username,password);
40 }
41
42 public static Connection getConnection() {
43 Connection conn = null;
44 try {
45 conn = DriverManager.getConnection(url,username,password);
46 } catch (SQLException e) {
47 e.printStackTrace();
48 }
49 return conn;
50 }
51
52 public static Connection getConnection(String url,String username,String password) {
53 //TODO 这里有待考虑优化
54 Connection conn = null;
55 try {
56 conn = DriverManager.getConnection(url,username,password);
57 } catch (SQLException e) {
58 e.printStackTrace();
59 }
60 return conn;
61 }
62
63 public static void closeResultSet(ResultSet rs) {
64 try {
65 rs.close();
66 } catch (SQLException e) {
67 e.printStackTrace();
68 }
69 }
70
71 public static void closeStatement(Statement st) {
72 try {
73 st.close();
74 } catch (SQLException e) {
75 e.printStackTrace();
76 }
77 }
78
79 public static void closeConnection(Connection conn) {
80 try {
81 conn.close();
82 } catch (SQLException e) {
83 e.printStackTrace();
84 }
85 }
86
87 public static void closeQuickly(Connection conn,Statement st) {
88 closeStatement(st);
89 closeConnection(conn);
90 }
91
92 public static void closeQuickly(Connection conn,Statement st,ResultSet rs) {
93 closeResultSet(rs);
94 closeStatement(st);
95 closeConnection(conn);
96 }
97
98 }
99

 

 

 注:由于注册驱动放在了 static 代码块中,static 代码块只执行一次,故 setInit(String driverName,String url,String username,Sting password)  方法失去了意义.若要可用,可把该工具类改成单例模式,把注册驱动写成方法.

 

 

 

  为了方便修改信息和考虑代码的复用性,把配置信息放到.properties后缀名的文件下,现工具类修改如下:

 

 

1 package com.loveis.jdbc;
2
3  /*
4 * Author:L.z.
5 * version number:V1.0
6 */
7
8 import java.io.FileInputStream;
9 import java.io.FileNotFoundException;
10 import java.io.IOException;
11 import java.sql.Connection;
12 import java.sql.DriverManager;
13 import java.sql.ResultSet;
14 import java.sql.SQLException;
15 import java.sql.Statement;
16 import java.util.Properties;
17
18 public class JdbcUtils {
19
20 // sqlconfig.properties 相对于项目的路径,此处需要自己修改
21 private static String relativePath = "\\src\\sqlconfig.properties";
22
23 private static final String path = System.getProperty("user.dir") + relativePath;
24
25 private static String driverName = "com.mysql.jdbc.Driver";
26
27 private static String url = "jdbc:mysql://localhost/jdbc";
28
29 private static String username = "root";
30
31 private static String password = "";
32
33 private JdbcUtils() { }
34
35 static{
36 try {
37 // 初始化信息
38 initInformation();
39 // 注册驱动
40 Class.forName(driverName);
41 // DriverManager.registerDriver(new com.mysql.jdbc.Driver());
42 }catch (Exception e) {
43 e.printStackTrace();
44 }
45 }
46
47 private static void initInformation() {
48 try {
49 FileInputStream fs = new FileInputStream(path);
50 Properties props = new Properties();
51 props.load(fs);
52 driverName = props.getProperty("driverName");
53 url = props.getProperty("url");
54 username = props.getProperty("username");
55 password = props.getProperty("password");
56 } catch (FileNotFoundException e) {
57 e.printStackTrace();
58 } catch (IOException e) {
59 e.printStackTrace();
60 }
61 }
62
63 public static Connection getConnection() {
64 Connection conn = null;
65 try {
66 conn = DriverManager.getConnection(url,username,password);
67 } catch (SQLException e) {
68 e.printStackTrace();
69 }
70 return conn;
71 }
72
73 public static Connection getConnection(String url,String username,String password) {
74 //TODO mark a logo
75 Connection conn = null;
76 try {
77 conn = DriverManager.getConnection(url,username,password);
78 } catch (SQLException e) {
79 e.printStackTrace();
80 }
81 return conn;
82 }
83
84 public static void closeResultSet(ResultSet rs) {
85 try {
86 rs.close();
87 } catch (SQLException e) {
88 e.printStackTrace();
89 }
90 }
91
92 public static void closeStatement(Statement st) {
93 try {
94 st.close();
95 } catch (SQLException e) {
96 e.printStackTrace();
97 }
98 }
99
100 public static void closeConnection(Connection conn) {
101 try {
102 conn.close();
103 } catch (SQLException e) {
104 e.printStackTrace();
105 }
106 }
107
108 public static void closeQuickly(Connection conn,Statement st) {
109 closeStatement(st);
110 closeConnection(conn);
111 }
112
113 public static void closeQuickly(Connection conn,Statement st,ResultSet rs) {
114 closeResultSet(rs);
115 closeStatement(st);
116 closeConnection(conn);
117 }
118 }
119

 

posted on 2010-12-05 10:16  五月十七  阅读(1093)  评论(0)    收藏  举报

导航