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 ? DriverManager.getConnection(URL, USER, PWD) 28 : conn; 29 } catch (SQLException e) { 30 e.printStackTrace(); 31 return null; 32 } 33 } 34 35 protected void closeAll(Connection conn, Statement stmt, ResultSet rs) { 36 try { 37 if (conn != null) 38 conn.close(); 39 if (stmt != null) 40 stmt.close(); 41 if (rs != null) 42 rs.close(); 43 } catch (SQLException e) { 44 e.printStackTrace(); 45 } 46 } 47 48 protected Object execute(String sql, Object... objs) { 49 handle(sql, objs); 50 try { 51 boolean flag = pstmt.execute(); 52 if (flag) { 53 closeAll(conn, null, null); 54 return pstmt.getResultSet(); 55 } else { 56 closeAll(conn, pstmt, null); 57 return pstmt.getUpdateCount(); 58 } 59 } catch (SQLException e) { 60 e.printStackTrace(); 61 return null; 62 } 63 } 64 65 private void handle(String sql, Object[] objs) { 66 conn = getConnection(); 67 try { 68 pstmt = conn.prepareStatement(sql); 69 if (objs != null) { 70 for (int i = 0; i < objs.length; i++) { 71 pstmt.setObject(i + 1, objs[i]); 72 } 73 } 74 } catch (SQLException e) { 75 e.printStackTrace(); 76 } 77 } 78 }