1.daoConfig.properties
userDaoClass=cn.itcast.jdbc.dao.impl.UserDaoJdbcImpl
#userDaoClass=cn.itcast.jdbc.dao.impl.UserDaoHibernateImpl-----------------------------------------------------------------------------------------------------------
public final class JdbcUtils {
private static DataSource myDataSource = null;private JdbcUtils() {}
static {
try { // 注册驱动 Class.forName("com.mysql.jdbc.Driver");// 推荐 // DriverManager.registerDriver(new com.mysql.jdbc.Driver());//2 // System.setProperty("jdbc.drivers","com.mysql.jdbc.Driver[:...:...]");//注册方式3可以注册多个驱动用“:”分隔。 Properties prop = new Properties(); // 读取配置文件 InputStream is = JdbcUtils.class.getClassLoader().getResourceAsStream("dbcpconfig.properties"); prop.load(is); myDataSource = BasicDataSourceFactory.createDataSource(prop); } catch (Exception e) { throw new ExceptionInInitializerError(e); } }public static Connection getConnection() throws SQLException {
return myDataSource.getConnection();
}public static void free(ResultSet rs, Statement st, Connection conn) {
try { if (rs != null) rs.close(); } catch (SQLException e) { e.printStackTrace(); } finally { try { if (st != null) st.close(); } catch (SQLException e) { e.printStackTrace(); } finally { try { if (conn != null) conn.close(); // myDataSource.free(conn); } catch (Exception e) { e.printStackTrace(); } } } }}-----------------------------------------------------------------------------------------------
使用单例模式:保证一个类仅有一个实例,并提供一个访问它的全局访问点。
public final class JdbcUtilsSing {
private String url="jdbc:mysql://localhost:3306/jdbc"; private String user="root"; private String password="064417"; private static JdbcUtilsSing instance=null;// private static JdbcUtilsSing instance=new JdbcUtilsSing(); private JdbcUtilsSing(){ } public static JdbcUtilsSing getInstance(){ if(instance==null){ synchronized(JdbcUtilsSing.class){ if(instance==null){ instance=new JdbcUtilsSing(); } } } return instance; } static{ try { // 注册驱动 Class.forName("com.mysql.jdbc.Driver");//推荐// DriverManager.registerDriver(new com.mysql.jdbc.Driver());//2// System.setProperty("jdbc.drivers", "com.mysql.jdbc.Driver[:...:...]");//注册方式3可以注册多个驱动用“:”分隔。 } catch (ClassNotFoundException e) { throw new ExceptionInInitializerError(e); } } public Connection getConnection() throws SQLException{ return DriverManager.getConnection(url, user, password); } public void free(ResultSet rs,Statement st,Connection conn){ try { if(rs!=null) rs.close(); } catch (SQLException e) { e.printStackTrace(); }finally{ try { if(st!=null) st.close(); } catch (SQLException e) { e.printStackTrace(); }finally{ try { if(conn!=null) conn.close(); } catch (SQLException e) { e.printStackTrace(); } } } }}