Sun定义提供 connection工厂接口
实现方式
1.不加强Connection的close方法, 每次getConnection都新建一个连接
2.连接池方式实现
3.支持分布式事务, 多数据库联合封装
1方式比较基础 2方式只学了这个, 3方式现在还没接触
加强close用到了动态代理, 包装代码比较多,没写
import java.io.PrintWriter;
import java.lang.reflect.InvocationHandler;
import java.lang.reflect.Method;
import java.lang.reflect.Proxy;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
import java.sql.SQLFeatureNotSupportedException;
import java.util.ArrayList;
import java.util.List;
import java.util.logging.Logger;
import javax.sql.DataSource;
import org.junit.Test;
public class MyDataSource implements DataSource {
private List<Connection> pool = new ArrayList<Connection>();
public MyDataSource() {
try {
Class.forName("com.mysql.jdbc.Driver");
int i = 0;
String url = "jdbc:mysql://127.0.0.1:3306/mydb";
String user