JavaWeb基础工具类——BaseDao

 1 package dao;
 2 
 3 import java.sql.Connection;
 4 import java.sql.DriverManager;
 5 import java.sql.PreparedStatement;
 6 import java.sql.ResultSet;
 7 import java.sql.SQLException;
 8 import java.sql.Statement;
 9 
10 public class BaseDao {
11     private static String URL = "jdbc:sqlserver://localhost:1433;DatabaseName=StudentManageSys";
12     private static String USER = "sa";
13     private static String PWD = "sa";
14     protected Connection conn = null;
15     protected PreparedStatement pstmt = null;
16 
17     static {
18         try {
19             Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
20         } catch (ClassNotFoundException e) {
21             e.printStackTrace();
22         }
23     }
24 
25     protected Connection getConnection() {
26         try {
27             return (conn == null || conn.isClosed()) ? DriverManager.getConnection(URL, USER, PWD) : conn;
28         } catch (SQLException e) {
29             e.printStackTrace();
30             return null;
31         }
32     }
33 
34     protected void closeAll(Connection conn, Statement stmt, ResultSet rs) {
35         try {
36             if (rs != null)
37                 rs.close();
38             if (stmt != null)
39                 stmt.close();
40             if (conn != null)
41                 conn.close();
42         } catch (SQLException e) {
43             e.printStackTrace();
44         }
45     }
46 
47     protected Object execute(String sql, Object... objs) {
48         handle(sql, objs);
49         try {
50             boolean flag = pstmt.execute();
51             if (flag) {
52                 return pstmt.getResultSet(); // 查询不必先释放资源
53             } else {
54                 closeAll(conn, pstmt, null);
55                 return pstmt.getUpdateCount();
56             }
57         } catch (SQLException e) {
58             e.printStackTrace();
59             return null;
60         }
61     }
62 
63     private void handle(String sql, Object[] objs) {
64         conn = getConnection();
65         try {
66             pstmt = conn.prepareStatement(sql);
67             if (objs != null) {
68                 for (int i = 0; i < objs.length; i++) {
69                     pstmt.setObject(i + 1, objs[i]);
70                 }
71             }
72         } catch (SQLException e) {
73             e.printStackTrace();
74         }
75     }
76 }

 

posted @ 2016-09-12 15:01  JiangCYkk  阅读(1418)  评论(2编辑  收藏  举报