使用单例就是同一时间只能有一个人执行connection.commit()

解决方案 »

  1.   


    public class DBUtils {
    private String dataSource;
    private static DataSource ds;
    private volatile static DBUtils db;private DBUtils(String dataSource) {
    this.dataSource = dataSource;
    }public static DBUtils getDataSource(String dataSource) {
    //这里使用双重锁的方式使用Double Check的方式改造代码
    if (db == null) {
    synchronized (DBUtils.class) {
    if (db == null) {
    db = new DBUtils(dataSource);
    db.init();
    }
    }
    }
    return db;
    }private void init() {
    Context initContext = null;
    try {
    initContext = new InitialContext();
    // 通过指定参数来获取相关数据库的连接池
    ds = (DataSource) initContext.lookup("java:/comp/env/" + dataSource);
    } catch (NamingException e) {
    e.printStackTrace();
    }
    }我是这样写的,如果有两个人同时对数据库进行操作,那么他们通过datasource从连接池中获得连接,然后对数据库进行操作,那么会发生什么?