package dao; import java.io.IOException; import java.io.InputStream; import java.sql.Connection; import java.sql.DriverManager; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.SQLException; import java.util.Properties; public class BaseDao { private static final String URL; private static final String DRIVER; private static final String USERNAME; private static final String PASSWORD; // 读取properties static { Properties properties = new Properties(); InputStream is = BaseDao.class.getResourceAsStream("/db.properties"); try { properties.load(is); } catch (IOException e) { e.printStackTrace(); } // 赋值 URL = properties.getProperty("URL"); DRIVER = properties.getProperty("DRIVER"); USERNAME = properties.getProperty("USERNAME"); PASSWORD = properties.getProperty("PASSWORD"); try { // 释放InputStream is.close(); } catch (IOException e) { e.printStackTrace(); } } private Connection conn = null; private PreparedStatement pstmt = null; private ResultSet rs = null; /** * * 获取Sql连接 * @return */ public Connection getConn() { Connection conn = null; try { Class.forName(DRIVER); conn = DriverManager.getConnection(URL, USERNAME, PASSWORD); } catch (ClassNotFoundException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (SQLException e) { // TODO Auto-generated catch block e.printStackTrace(); } return conn; } /** * 修改 * @param sql * @param obj * @return */ public int executeUpdate(String sql,Object[] obj) { // 获取MySql连接 conn = this.getConn(); int j = 0; try { conn.setAutoCommit(false); pstmt = conn.prepareStatement(sql); if(obj!=null) { for (int i = 0; i < obj.length; i++) { pstmt.setObject(i+1, obj[i]); } } j = pstmt.executeUpdate(); conn.commit(); } catch (SQLException e) { // TODO Auto-generated catch block e.printStackTrace(); try { conn.rollback(); } catch (SQLException e1) { // TODO Auto-generated catch block e1.printStackTrace(); } }finally { closeAll(conn, pstmt, rs); } return j; } /** * 查询 * @param sql * @param obj * @return */ public ResultSet executeQuery(String sql,Object[] obj) { conn = this.getConn(); try { pstmt = conn.prepareStatement(sql); if(obj!=null) { for (int i = 0; i < obj.length; i++) { pstmt.setObject(i+1, i); } } rs = pstmt.executeQuery(); } catch (SQLException e) { // TODO Auto-generated catch block e.printStackTrace(); } return rs; } /** * 释放 * @param conn * @param pstmt * @param rs */ public void closeAll(Connection conn,PreparedStatement pstmt,ResultSet rs) { try { if(rs!=null) { rs.close(); } if(pstmt!=null) { pstmt.close(); } if(rs!=null) { rs.close(); } } catch (SQLException e) { // TODO Auto-generated catch block e.printStackTrace(); } } }