定义连接工厂使用
package huidiao;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
public class ConnFactory {
private static Connection conn;
//获取连接池
public static Connection getConn(){
try {
System.out.println("开启conn对象");
Class.forName("com.mysql.jdbc.Driver");
conn = DriverManager.getConnection("");
} catch (Exception e) {
e.printStackTrace();
}
return conn;
}
/**
* 关闭连接池
* @param conn
*/
public static void closeConnection(Connection conn){
System.out.println("关闭conn对象连接");
if(null != conn){
try {
conn.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
}
public static void doConn(IcallBack callback){
getConn();
callback.dosomeConn();
closeConnection(conn);
}
}
定义回调函数的接口
package huidiao;
public interface IcallBack {
public void dosomeConn();
}
定义使用回调函数的测试类
package huidiao;
public class TestConn {
public static void main(String[] args) {
ConnFactory.doConn(new IcallBack() {
public void dosomeConn() {
System.out.println("请使用conn进行操作");
}
});
}
}
其实关于回调函数的作用和AOP的作用差不多,只不过回调函数中使用的一个一个对象,而AOP使用的是一组一组的对象。以上的关于数据库连接的创建、使用、关闭等就说明了回调函数的使用。在此处使用回调函数的好处是:在使用conn对象进行数据库操作的时候不需要使用者关心数据库连接对象的开启和关闭。这样的好处是在使用数据库连接操作时不会有人忘记关闭连接